qemu/hw/misc/xlnx-versal-pmc-tap.c
<<
>>
Prefs
   1/*
   2 * QEMU model of the PMC JTAG TAP. This is just a dummy model with the
   3 *     PLATFORM_VERSION set to QEMU.
   4 *
   5 * Copyright (c) 2017 Xilinx Inc.
   6 *
   7 * Autogenerated by xregqemu.py 2017-04-17.
   8 *
   9 * Permission is hereby granted, free of charge, to any person obtaining a copy
  10 * of this software and associated documentation files (the "Software"), to deal
  11 * in the Software without restriction, including without limitation the rights
  12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  13 * copies of the Software, and to permit persons to whom the Software is
  14 * furnished to do so, subject to the following conditions:
  15 *
  16 * The above copyright notice and this permission notice shall be included in
  17 * all copies or substantial portions of the Software.
  18 *
  19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  22 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  25 * THE SOFTWARE.
  26 */
  27
  28#include "qemu/osdep.h"
  29#include "hw/sysbus.h"
  30#include "hw/register.h"
  31#include "hw/irq.h"
  32#include "qemu/bitops.h"
  33#include "qemu/log.h"
  34#include "chardev/char.h"
  35#include "chardev/char-fe.h"
  36#include "migration/vmstate.h"
  37#include "hw/qdev-properties.h"
  38
  39#ifndef XILINX_PMC_TAP_ERR_DEBUG
  40#define XILINX_PMC_TAP_ERR_DEBUG 0
  41#endif
  42
  43#define TYPE_XILINX_PMC_TAP "xlnx,pmc-tap"
  44
  45#define XILINX_PMC_TAP(obj) \
  46     OBJECT_CHECK(PMC_TAP, (obj), TYPE_XILINX_PMC_TAP)
  47#define PLATFORM_VERSION_QEMU   0x3
  48
  49#define MAX_SEC_PAYLOAD (4 * 512)
  50
  51#define DPRINT(args, ...) \
  52    do { \
  53        if (XILINX_PMC_TAP_ERR_DEBUG) { \
  54            qemu_log("%s: " args, __func__, ## __VA_ARGS__); \
  55        } \
  56    } while (0)
  57
  58
  59REG32(IDCODE, 0x0)
  60REG32(VERSION, 0x4)
  61    FIELD(VERSION, PLATFORM_VERSION, 28, 4)
  62    FIELD(VERSION, PLATFORM, 24, 4)
  63    FIELD(VERSION, RTL_VERSION, 16, 8)
  64    FIELD(VERSION, PS_VERSION, 8, 8)
  65    FIELD(VERSION, PMC_VERSION, 0, 8)
  66REG32(USERCODE, 0x8)
  67REG32(PMC_TAP_INT_STATUS, 0xc)
  68    FIELD(PMC_TAP_INT_STATUS, TAMPER_DETECT, 4, 1)
  69    FIELD(PMC_TAP_INT_STATUS, ENUM_DETECT, 3, 1)
  70    FIELD(PMC_TAP_INT_STATUS, JRDBK_ERR, 2, 1)
  71    FIELD(PMC_TAP_INT_STATUS, JCFG_ERR, 1, 1)
  72    FIELD(PMC_TAP_INT_STATUS, TOGGLE_DETECT, 0, 1)
  73REG32(PMC_TAP_INT_MASK, 0x10)
  74    FIELD(PMC_TAP_INT_MASK, TAMPER_DETECT, 4, 1)
  75    FIELD(PMC_TAP_INT_MASK, ENUM_DETECT, 3, 1)
  76    FIELD(PMC_TAP_INT_MASK, JRDBK_ERR, 2, 1)
  77    FIELD(PMC_TAP_INT_MASK, JCFG_ERR, 1, 1)
  78    FIELD(PMC_TAP_INT_MASK, TOGGLE_DETECT, 0, 1)
  79REG32(PMC_TAP_INT_EN, 0x14)
  80    FIELD(PMC_TAP_INT_EN, TAMPER_DETECT, 4, 1)
  81    FIELD(PMC_TAP_INT_EN, ENUM_DETECT, 3, 1)
  82    FIELD(PMC_TAP_INT_EN, JRDBK_ERR, 2, 1)
  83    FIELD(PMC_TAP_INT_EN, JCFG_ERR, 1, 1)
  84    FIELD(PMC_TAP_INT_EN, TOGGLE_DETECT, 0, 1)
  85REG32(PMC_TAP_INT_DIS, 0x18)
  86    FIELD(PMC_TAP_INT_DIS, TAMPER_DETECT, 4, 1)
  87    FIELD(PMC_TAP_INT_DIS, ENUM_DETECT, 3, 1)
  88    FIELD(PMC_TAP_INT_DIS, JRDBK_ERR, 2, 1)
  89    FIELD(PMC_TAP_INT_DIS, JCFG_ERR, 1, 1)
  90    FIELD(PMC_TAP_INT_DIS, TOGGLE_DETECT, 0, 1)
  91REG32(DPC_MUX_SEL, 0x20)
  92    FIELD(DPC_MUX_SEL, VAL, 0, 2)
  93REG32(SLR_TYPE, 0x24)
  94    FIELD(SLR_TYPE, VAL, 0, 3)
  95REG32(INST_MASK_0, 0x10000)
  96    FIELD(INST_MASK_0, STATUS, 31, 1)
  97    FIELD(INST_MASK_0, PMCTP_CTRL, 30, 1)
  98    FIELD(INST_MASK_0, UNUSED_29, 29, 1)
  99    FIELD(INST_MASK_0, UNUSED_28, 28, 1)
 100    FIELD(INST_MASK_0, UNUSED_27, 27, 1)
 101    FIELD(INST_MASK_0, UNUSED_26, 26, 1)
 102    FIELD(INST_MASK_0, IPDISABLE, 25, 1)
 103    FIELD(INST_MASK_0, UNUSED_24, 24, 1)
 104    FIELD(INST_MASK_0, UNUSED_23, 23, 1)
 105    FIELD(INST_MASK_0, UNUSED_22, 22, 1)
 106    FIELD(INST_MASK_0, UNUSED_21, 21, 1)
 107    FIELD(INST_MASK_0, UNUSED_20, 20, 1)
 108    FIELD(INST_MASK_0, UNUSED_19, 19, 1)
 109    FIELD(INST_MASK_0, UNUSED_18, 18, 1)
 110    FIELD(INST_MASK_0, UNUSED_17, 17, 1)
 111    FIELD(INST_MASK_0, UNUSED_16, 16, 1)
 112    FIELD(INST_MASK_0, UNUSED_15, 15, 1)
 113    FIELD(INST_MASK_0, UNUSED_14, 14, 1)
 114    FIELD(INST_MASK_0, UNUSED_13, 13, 1)
 115    FIELD(INST_MASK_0, UNUSED_12, 12, 1)
 116    FIELD(INST_MASK_0, UNUSED_11, 11, 1)
 117    FIELD(INST_MASK_0, HIGHZ, 10, 1)
 118    FIELD(INST_MASK_0, IDCODE, 9, 1)
 119    FIELD(INST_MASK_0, USERCODE, 8, 1)
 120    FIELD(INST_MASK_0, UNUSED_7, 7, 1)
 121    FIELD(INST_MASK_0, UNUSED_6, 6, 1)
 122    FIELD(INST_MASK_0, JCONFIG, 5, 1)
 123    FIELD(INST_MASK_0, JRDBK, 4, 1)
 124    FIELD(INST_MASK_0, USER2, 3, 1)
 125    FIELD(INST_MASK_0, USER1, 2, 1)
 126    FIELD(INST_MASK_0, SAMPLE, 1, 1)
 127    FIELD(INST_MASK_0, UNUSED_0, 0, 1)
 128REG32(INST_MASK_1, 0x10004)
 129    FIELD(INST_MASK_1, BYPASS, 31, 1)
 130    FIELD(INST_MASK_1, ERROR_STATUS, 30, 1)
 131    FIELD(INST_MASK_1, EXTEST_TRAIN, 29, 1)
 132    FIELD(INST_MASK_1, EXTEST_PULSE, 28, 1)
 133    FIELD(INST_MASK_1, SLAVE_BYPASS, 27, 1)
 134    FIELD(INST_MASK_1, IJTAG, 26, 1)
 135    FIELD(INST_MASK_1, TEST_XOSC_CTRL, 25, 1)
 136    FIELD(INST_MASK_1, UNUSED_56, 24, 1)
 137    FIELD(INST_MASK_1, SYS_RST, 23, 1)
 138    FIELD(INST_MASK_1, DPC, 22, 1)
 139    FIELD(INST_MASK_1, SEC_DBG, 21, 1)
 140    FIELD(INST_MASK_1, UNUSED_52, 20, 1)
 141    FIELD(INST_MASK_1, UNUSED_51, 19, 1)
 142    FIELD(INST_MASK_1, READ_DNA, 18, 1)
 143    FIELD(INST_MASK_1, UNUSED_49, 17, 1)
 144    FIELD(INST_MASK_1, UNUSED_48, 16, 1)
 145    FIELD(INST_MASK_1, UNUSED_47, 15, 1)
 146    FIELD(INST_MASK_1, UNUSED_46, 14, 1)
 147    FIELD(INST_MASK_1, UNUSED_45, 13, 1)
 148    FIELD(INST_MASK_1, UNUSED_44, 12, 1)
 149    FIELD(INST_MASK_1, UNUSED_43, 11, 1)
 150    FIELD(INST_MASK_1, UNUSED_42, 10, 1)
 151    FIELD(INST_MASK_1, UNUSED_41, 9, 1)
 152    FIELD(INST_MASK_1, UNUSED_40, 8, 1)
 153    FIELD(INST_MASK_1, UNUSED_39, 7, 1)
 154    FIELD(INST_MASK_1, EXTEST, 6, 1)
 155    FIELD(INST_MASK_1, SLAVE_IDCODE, 5, 1)
 156    FIELD(INST_MASK_1, FEEDTHRU, 4, 1)
 157    FIELD(INST_MASK_1, USER4, 3, 1)
 158    FIELD(INST_MASK_1, USER3, 2, 1)
 159    FIELD(INST_MASK_1, TEST_CTRL, 1, 1)
 160    FIELD(INST_MASK_1, UNUSED_32, 0, 1)
 161REG32(DAP_CFG, 0x10008)
 162    FIELD(DAP_CFG, SPNIDEN, 3, 1)
 163    FIELD(DAP_CFG, SPIDEN, 2, 1)
 164    FIELD(DAP_CFG, NIDEN, 1, 1)
 165    FIELD(DAP_CFG, DBGEN, 0, 1)
 166REG32(DAP_SECURITY, 0x1000c)
 167REG32(JTAG_CTRL, 0x10010)
 168    FIELD(JTAG_CTRL, TOGGLE_DET_EN, 0, 1)
 169REG32(JTAG_TEST, 0x10014)
 170    FIELD(JTAG_TEST, MJTAG_EN, 0, 1)
 171REG32(SEC_DBG_INT_STATUS, 0x10018)
 172    FIELD(SEC_DBG_INT_STATUS, SEC_DBG, 0, 1)
 173REG32(SEC_DBG_INT_MASK, 0x1001c)
 174    FIELD(SEC_DBG_INT_MASK, SEC_DBG, 0, 1)
 175REG32(SEC_DBG_INT_EN, 0x10020)
 176    FIELD(SEC_DBG_INT_EN, SEC_DBG, 0, 1)
 177REG32(SEC_DBG_INT_DIS, 0x10024)
 178    FIELD(SEC_DBG_INT_DIS, SEC_DBG, 0, 1)
 179REG32(SEC_DBG_DATA_0, 0x10030)
 180REG32(SEC_DBG_DATA_1, 0x10034)
 181REG32(SEC_DBG_DATA_2, 0x10038)
 182REG32(SEC_DBG_DATA_3, 0x1003c)
 183REG32(SEC_DBG_DATA_4, 0x10040)
 184REG32(SEC_DBG_DATA_5, 0x10044)
 185REG32(SEC_DBG_DATA_6, 0x10048)
 186REG32(SEC_DBG_DATA_7, 0x1004c)
 187REG32(SEC_DBG_DATA_8, 0x10050)
 188REG32(SEC_DBG_DATA_9, 0x10054)
 189REG32(SEC_DBG_DATA_10, 0x10058)
 190REG32(SEC_DBG_DATA_11, 0x1005c)
 191REG32(SEC_DBG_DATA_12, 0x10060)
 192REG32(SEC_DBG_DATA_13, 0x10064)
 193REG32(SEC_DBG_DATA_14, 0x10068)
 194REG32(SEC_DBG_DATA_15, 0x1006c)
 195REG32(SEC_DBG_DATA_16, 0x10070)
 196REG32(SEC_DBG_DATA_17, 0x10074)
 197REG32(SEC_DBG_DATA_18, 0x10078)
 198REG32(SEC_DBG_DATA_19, 0x1007c)
 199REG32(SEC_DBG_DATA_20, 0x10080)
 200REG32(SEC_DBG_DATA_21, 0x10084)
 201REG32(SEC_DBG_DATA_22, 0x10088)
 202REG32(SEC_DBG_DATA_23, 0x1008c)
 203REG32(SEC_DBG_DATA_24, 0x10090)
 204REG32(SEC_DBG_DATA_25, 0x10094)
 205REG32(SEC_DBG_DATA_26, 0x10098)
 206REG32(SEC_DBG_DATA_27, 0x1009c)
 207REG32(SEC_DBG_DATA_28, 0x100a0)
 208REG32(SEC_DBG_DATA_29, 0x100a4)
 209REG32(SEC_DBG_DATA_30, 0x100a8)
 210REG32(SEC_DBG_DATA_31, 0x100ac)
 211REG32(SEC_DBG_DATA_32, 0x100b0)
 212REG32(SEC_DBG_DATA_33, 0x100b4)
 213REG32(SEC_DBG_DATA_34, 0x100b8)
 214REG32(SEC_DBG_DATA_35, 0x100bc)
 215REG32(SEC_DBG_DATA_36, 0x100c0)
 216REG32(SEC_DBG_DATA_37, 0x100c4)
 217REG32(SEC_DBG_DATA_38, 0x100c8)
 218REG32(SEC_DBG_DATA_39, 0x100cc)
 219REG32(SEC_DBG_DATA_40, 0x100d0)
 220REG32(SEC_DBG_DATA_41, 0x100d4)
 221REG32(SEC_DBG_DATA_42, 0x100d8)
 222REG32(SEC_DBG_DATA_43, 0x100dc)
 223REG32(SEC_DBG_DATA_44, 0x100e0)
 224REG32(SEC_DBG_DATA_45, 0x100e4)
 225REG32(SEC_DBG_DATA_46, 0x100e8)
 226REG32(SEC_DBG_DATA_47, 0x100ec)
 227REG32(SEC_DBG_DATA_48, 0x100f0)
 228REG32(SEC_DBG_DATA_49, 0x100f4)
 229REG32(SEC_DBG_DATA_50, 0x100f8)
 230REG32(SEC_DBG_DATA_51, 0x100fc)
 231REG32(SEC_DBG_DATA_52, 0x10100)
 232REG32(SEC_DBG_DATA_53, 0x10104)
 233REG32(SEC_DBG_DATA_54, 0x10108)
 234REG32(SEC_DBG_DATA_55, 0x1010c)
 235REG32(SEC_DBG_DATA_56, 0x10110)
 236REG32(SEC_DBG_DATA_57, 0x10114)
 237REG32(SEC_DBG_DATA_58, 0x10118)
 238REG32(SEC_DBG_DATA_59, 0x1011c)
 239REG32(SEC_DBG_DATA_60, 0x10120)
 240REG32(SEC_DBG_DATA_61, 0x10124)
 241REG32(SEC_DBG_DATA_62, 0x10128)
 242REG32(SEC_DBG_DATA_63, 0x1012c)
 243REG32(SEC_DBG_DATA_64, 0x10130)
 244REG32(SEC_DBG_DATA_65, 0x10134)
 245REG32(SEC_DBG_DATA_66, 0x10138)
 246REG32(SEC_DBG_DATA_67, 0x1013c)
 247REG32(SEC_DBG_DATA_68, 0x10140)
 248REG32(SEC_DBG_DATA_69, 0x10144)
 249REG32(SEC_DBG_DATA_70, 0x10148)
 250REG32(SEC_DBG_DATA_71, 0x1014c)
 251REG32(SEC_DBG_DATA_72, 0x10150)
 252REG32(SEC_DBG_DATA_73, 0x10154)
 253REG32(SEC_DBG_DATA_74, 0x10158)
 254REG32(SEC_DBG_DATA_75, 0x1015c)
 255REG32(SEC_DBG_DATA_76, 0x10160)
 256REG32(SEC_DBG_DATA_77, 0x10164)
 257REG32(SEC_DBG_DATA_78, 0x10168)
 258REG32(SEC_DBG_DATA_79, 0x1016c)
 259REG32(SEC_DBG_DATA_80, 0x10170)
 260REG32(SEC_DBG_DATA_81, 0x10174)
 261REG32(SEC_DBG_DATA_82, 0x10178)
 262REG32(SEC_DBG_DATA_83, 0x1017c)
 263REG32(SEC_DBG_DATA_84, 0x10180)
 264REG32(SEC_DBG_DATA_85, 0x10184)
 265REG32(SEC_DBG_DATA_86, 0x10188)
 266REG32(SEC_DBG_DATA_87, 0x1018c)
 267REG32(SEC_DBG_DATA_88, 0x10190)
 268REG32(SEC_DBG_DATA_89, 0x10194)
 269REG32(SEC_DBG_DATA_90, 0x10198)
 270REG32(SEC_DBG_DATA_91, 0x1019c)
 271REG32(SEC_DBG_DATA_92, 0x101a0)
 272REG32(SEC_DBG_DATA_93, 0x101a4)
 273REG32(SEC_DBG_DATA_94, 0x101a8)
 274REG32(SEC_DBG_DATA_95, 0x101ac)
 275REG32(SEC_DBG_DATA_96, 0x101b0)
 276REG32(SEC_DBG_DATA_97, 0x101b4)
 277REG32(SEC_DBG_DATA_98, 0x101b8)
 278REG32(SEC_DBG_DATA_99, 0x101bc)
 279REG32(SEC_DBG_DATA_100, 0x101c0)
 280REG32(SEC_DBG_DATA_101, 0x101c4)
 281REG32(SEC_DBG_DATA_102, 0x101c8)
 282REG32(SEC_DBG_DATA_103, 0x101cc)
 283REG32(SEC_DBG_DATA_104, 0x101d0)
 284REG32(SEC_DBG_DATA_105, 0x101d4)
 285REG32(SEC_DBG_DATA_106, 0x101d8)
 286REG32(SEC_DBG_DATA_107, 0x101dc)
 287REG32(SEC_DBG_DATA_108, 0x101e0)
 288REG32(SEC_DBG_DATA_109, 0x101e4)
 289REG32(SEC_DBG_DATA_110, 0x101e8)
 290REG32(SEC_DBG_DATA_111, 0x101ec)
 291REG32(SEC_DBG_DATA_112, 0x101f0)
 292REG32(SEC_DBG_DATA_113, 0x101f4)
 293REG32(SEC_DBG_DATA_114, 0x101f8)
 294REG32(SEC_DBG_DATA_115, 0x101fc)
 295REG32(SEC_DBG_DATA_116, 0x10200)
 296REG32(SEC_DBG_DATA_117, 0x10204)
 297REG32(SEC_DBG_DATA_118, 0x10208)
 298REG32(SEC_DBG_DATA_119, 0x1020c)
 299REG32(SEC_DBG_DATA_120, 0x10210)
 300REG32(SEC_DBG_DATA_121, 0x10214)
 301REG32(SEC_DBG_DATA_122, 0x10218)
 302REG32(SEC_DBG_DATA_123, 0x1021c)
 303REG32(SEC_DBG_DATA_124, 0x10220)
 304REG32(SEC_DBG_DATA_125, 0x10224)
 305REG32(SEC_DBG_DATA_126, 0x10228)
 306REG32(SEC_DBG_DATA_127, 0x1022c)
 307REG32(SEC_DBG_DATA_128, 0x10230)
 308REG32(SEC_DBG_DATA_129, 0x10234)
 309REG32(SEC_DBG_DATA_130, 0x10238)
 310REG32(SEC_DBG_DATA_131, 0x1023c)
 311REG32(SEC_DBG_DATA_132, 0x10240)
 312REG32(SEC_DBG_DATA_133, 0x10244)
 313REG32(SEC_DBG_DATA_134, 0x10248)
 314REG32(SEC_DBG_DATA_135, 0x1024c)
 315REG32(SEC_DBG_DATA_136, 0x10250)
 316REG32(SEC_DBG_DATA_137, 0x10254)
 317REG32(SEC_DBG_DATA_138, 0x10258)
 318REG32(SEC_DBG_DATA_139, 0x1025c)
 319REG32(SEC_DBG_DATA_140, 0x10260)
 320REG32(SEC_DBG_DATA_141, 0x10264)
 321REG32(SEC_DBG_DATA_142, 0x10268)
 322REG32(SEC_DBG_DATA_143, 0x1026c)
 323REG32(SEC_DBG_DATA_144, 0x10270)
 324REG32(SEC_DBG_DATA_145, 0x10274)
 325REG32(SEC_DBG_DATA_146, 0x10278)
 326REG32(SEC_DBG_DATA_147, 0x1027c)
 327REG32(SEC_DBG_DATA_148, 0x10280)
 328REG32(SEC_DBG_DATA_149, 0x10284)
 329REG32(SEC_DBG_DATA_150, 0x10288)
 330REG32(SEC_DBG_DATA_151, 0x1028c)
 331REG32(SEC_DBG_DATA_152, 0x10290)
 332REG32(SEC_DBG_DATA_153, 0x10294)
 333REG32(SEC_DBG_DATA_154, 0x10298)
 334REG32(SEC_DBG_DATA_155, 0x1029c)
 335REG32(SEC_DBG_DATA_156, 0x102a0)
 336REG32(SEC_DBG_DATA_157, 0x102a4)
 337REG32(SEC_DBG_DATA_158, 0x102a8)
 338REG32(SEC_DBG_DATA_159, 0x102ac)
 339REG32(SEC_DBG_DATA_160, 0x102b0)
 340REG32(SEC_DBG_DATA_161, 0x102b4)
 341REG32(SEC_DBG_DATA_162, 0x102b8)
 342REG32(SEC_DBG_DATA_163, 0x102bc)
 343REG32(SEC_DBG_DATA_164, 0x102c0)
 344REG32(SEC_DBG_DATA_165, 0x102c4)
 345REG32(SEC_DBG_DATA_166, 0x102c8)
 346REG32(SEC_DBG_DATA_167, 0x102cc)
 347REG32(SEC_DBG_DATA_168, 0x102d0)
 348REG32(SEC_DBG_DATA_169, 0x102d4)
 349REG32(SEC_DBG_DATA_170, 0x102d8)
 350REG32(SEC_DBG_DATA_171, 0x102dc)
 351REG32(SEC_DBG_DATA_172, 0x102e0)
 352REG32(SEC_DBG_DATA_173, 0x102e4)
 353REG32(SEC_DBG_DATA_174, 0x102e8)
 354REG32(SEC_DBG_DATA_175, 0x102ec)
 355REG32(SEC_DBG_DATA_176, 0x102f0)
 356REG32(SEC_DBG_DATA_177, 0x102f4)
 357REG32(SEC_DBG_DATA_178, 0x102f8)
 358REG32(SEC_DBG_DATA_179, 0x102fc)
 359REG32(SEC_DBG_DATA_180, 0x10300)
 360REG32(SEC_DBG_DATA_181, 0x10304)
 361REG32(SEC_DBG_DATA_182, 0x10308)
 362REG32(SEC_DBG_DATA_183, 0x1030c)
 363REG32(SEC_DBG_DATA_184, 0x10310)
 364REG32(SEC_DBG_DATA_185, 0x10314)
 365REG32(SEC_DBG_DATA_186, 0x10318)
 366REG32(SEC_DBG_DATA_187, 0x1031c)
 367REG32(SEC_DBG_DATA_188, 0x10320)
 368REG32(SEC_DBG_DATA_189, 0x10324)
 369REG32(SEC_DBG_DATA_190, 0x10328)
 370REG32(SEC_DBG_DATA_191, 0x1032c)
 371REG32(SEC_DBG_DATA_192, 0x10330)
 372REG32(SEC_DBG_DATA_193, 0x10334)
 373REG32(SEC_DBG_DATA_194, 0x10338)
 374REG32(SEC_DBG_DATA_195, 0x1033c)
 375REG32(SEC_DBG_DATA_196, 0x10340)
 376REG32(SEC_DBG_DATA_197, 0x10344)
 377REG32(SEC_DBG_DATA_198, 0x10348)
 378REG32(SEC_DBG_DATA_199, 0x1034c)
 379REG32(SEC_DBG_DATA_200, 0x10350)
 380REG32(SEC_DBG_DATA_201, 0x10354)
 381REG32(SEC_DBG_DATA_202, 0x10358)
 382REG32(SEC_DBG_DATA_203, 0x1035c)
 383REG32(SEC_DBG_DATA_204, 0x10360)
 384REG32(SEC_DBG_DATA_205, 0x10364)
 385REG32(SEC_DBG_DATA_206, 0x10368)
 386REG32(SEC_DBG_DATA_207, 0x1036c)
 387REG32(SEC_DBG_DATA_208, 0x10370)
 388REG32(SEC_DBG_DATA_209, 0x10374)
 389REG32(SEC_DBG_DATA_210, 0x10378)
 390REG32(SEC_DBG_DATA_211, 0x1037c)
 391REG32(SEC_DBG_DATA_212, 0x10380)
 392REG32(SEC_DBG_DATA_213, 0x10384)
 393REG32(SEC_DBG_DATA_214, 0x10388)
 394REG32(SEC_DBG_DATA_215, 0x1038c)
 395REG32(SEC_DBG_DATA_216, 0x10390)
 396REG32(SEC_DBG_DATA_217, 0x10394)
 397REG32(SEC_DBG_DATA_218, 0x10398)
 398REG32(SEC_DBG_DATA_219, 0x1039c)
 399REG32(SEC_DBG_DATA_220, 0x103a0)
 400REG32(SEC_DBG_DATA_221, 0x103a4)
 401REG32(SEC_DBG_DATA_222, 0x103a8)
 402REG32(SEC_DBG_DATA_223, 0x103ac)
 403REG32(SEC_DBG_DATA_224, 0x103b0)
 404REG32(SEC_DBG_DATA_225, 0x103b4)
 405REG32(SEC_DBG_DATA_226, 0x103b8)
 406REG32(SEC_DBG_DATA_227, 0x103bc)
 407REG32(SEC_DBG_DATA_228, 0x103c0)
 408REG32(SEC_DBG_DATA_229, 0x103c4)
 409REG32(SEC_DBG_DATA_230, 0x103c8)
 410REG32(SEC_DBG_DATA_231, 0x103cc)
 411REG32(SEC_DBG_DATA_232, 0x103d0)
 412REG32(SEC_DBG_DATA_233, 0x103d4)
 413REG32(SEC_DBG_DATA_234, 0x103d8)
 414REG32(SEC_DBG_DATA_235, 0x103dc)
 415REG32(SEC_DBG_DATA_236, 0x103e0)
 416REG32(SEC_DBG_DATA_237, 0x103e4)
 417REG32(SEC_DBG_DATA_238, 0x103e8)
 418REG32(SEC_DBG_DATA_239, 0x103ec)
 419REG32(SEC_DBG_DATA_240, 0x103f0)
 420REG32(SEC_DBG_DATA_241, 0x103f4)
 421REG32(SEC_DBG_DATA_242, 0x103f8)
 422REG32(SEC_DBG_DATA_243, 0x103fc)
 423REG32(SEC_DBG_DATA_244, 0x10400)
 424REG32(SEC_DBG_DATA_245, 0x10404)
 425REG32(SEC_DBG_DATA_246, 0x10408)
 426REG32(SEC_DBG_DATA_247, 0x1040c)
 427REG32(SEC_DBG_DATA_248, 0x10410)
 428REG32(SEC_DBG_DATA_249, 0x10414)
 429REG32(SEC_DBG_DATA_250, 0x10418)
 430REG32(SEC_DBG_DATA_251, 0x1041c)
 431REG32(SEC_DBG_DATA_252, 0x10420)
 432REG32(SEC_DBG_DATA_253, 0x10424)
 433REG32(SEC_DBG_DATA_254, 0x10428)
 434REG32(SEC_DBG_DATA_255, 0x1042c)
 435REG32(SEC_DBG_DATA_256, 0x10430)
 436REG32(SEC_DBG_DATA_257, 0x10434)
 437REG32(SEC_DBG_DATA_258, 0x10438)
 438REG32(SEC_DBG_DATA_259, 0x1043c)
 439REG32(SEC_DBG_DATA_260, 0x10440)
 440REG32(SEC_DBG_DATA_261, 0x10444)
 441REG32(SEC_DBG_DATA_262, 0x10448)
 442REG32(SEC_DBG_DATA_263, 0x1044c)
 443REG32(SEC_DBG_DATA_264, 0x10450)
 444REG32(SEC_DBG_DATA_265, 0x10454)
 445REG32(SEC_DBG_DATA_266, 0x10458)
 446REG32(SEC_DBG_DATA_267, 0x1045c)
 447REG32(SEC_DBG_DATA_268, 0x10460)
 448REG32(SEC_DBG_DATA_269, 0x10464)
 449REG32(SEC_DBG_DATA_270, 0x10468)
 450REG32(SEC_DBG_DATA_271, 0x1046c)
 451REG32(SEC_DBG_DATA_272, 0x10470)
 452REG32(SEC_DBG_DATA_273, 0x10474)
 453REG32(SEC_DBG_DATA_274, 0x10478)
 454REG32(SEC_DBG_DATA_275, 0x1047c)
 455REG32(SEC_DBG_DATA_276, 0x10480)
 456REG32(SEC_DBG_DATA_277, 0x10484)
 457REG32(SEC_DBG_DATA_278, 0x10488)
 458REG32(SEC_DBG_DATA_279, 0x1048c)
 459REG32(SEC_DBG_DATA_280, 0x10490)
 460REG32(SEC_DBG_DATA_281, 0x10494)
 461REG32(SEC_DBG_DATA_282, 0x10498)
 462REG32(SEC_DBG_DATA_283, 0x1049c)
 463REG32(SEC_DBG_DATA_284, 0x104a0)
 464REG32(SEC_DBG_DATA_285, 0x104a4)
 465REG32(SEC_DBG_DATA_286, 0x104a8)
 466REG32(SEC_DBG_DATA_287, 0x104ac)
 467REG32(SEC_DBG_DATA_288, 0x104b0)
 468REG32(SEC_DBG_DATA_289, 0x104b4)
 469REG32(SEC_DBG_DATA_290, 0x104b8)
 470REG32(SEC_DBG_DATA_291, 0x104bc)
 471REG32(SEC_DBG_DATA_292, 0x104c0)
 472REG32(SEC_DBG_DATA_293, 0x104c4)
 473REG32(SEC_DBG_DATA_294, 0x104c8)
 474REG32(SEC_DBG_DATA_295, 0x104cc)
 475REG32(SEC_DBG_DATA_296, 0x104d0)
 476REG32(SEC_DBG_DATA_297, 0x104d4)
 477REG32(SEC_DBG_DATA_298, 0x104d8)
 478REG32(SEC_DBG_DATA_299, 0x104dc)
 479REG32(SEC_DBG_DATA_300, 0x104e0)
 480REG32(SEC_DBG_DATA_301, 0x104e4)
 481REG32(SEC_DBG_DATA_302, 0x104e8)
 482REG32(SEC_DBG_DATA_303, 0x104ec)
 483REG32(SEC_DBG_DATA_304, 0x104f0)
 484REG32(SEC_DBG_DATA_305, 0x104f4)
 485REG32(SEC_DBG_DATA_306, 0x104f8)
 486REG32(SEC_DBG_DATA_307, 0x104fc)
 487REG32(SEC_DBG_DATA_308, 0x10500)
 488REG32(SEC_DBG_DATA_309, 0x10504)
 489REG32(SEC_DBG_DATA_310, 0x10508)
 490REG32(SEC_DBG_DATA_311, 0x1050c)
 491REG32(SEC_DBG_DATA_312, 0x10510)
 492REG32(SEC_DBG_DATA_313, 0x10514)
 493REG32(SEC_DBG_DATA_314, 0x10518)
 494REG32(SEC_DBG_DATA_315, 0x1051c)
 495REG32(SEC_DBG_DATA_316, 0x10520)
 496REG32(SEC_DBG_DATA_317, 0x10524)
 497REG32(SEC_DBG_DATA_318, 0x10528)
 498REG32(SEC_DBG_DATA_319, 0x1052c)
 499REG32(SEC_DBG_DATA_320, 0x10530)
 500REG32(SEC_DBG_DATA_321, 0x10534)
 501REG32(SEC_DBG_DATA_322, 0x10538)
 502REG32(SEC_DBG_DATA_323, 0x1053c)
 503REG32(SEC_DBG_DATA_324, 0x10540)
 504REG32(SEC_DBG_DATA_325, 0x10544)
 505REG32(SEC_DBG_DATA_326, 0x10548)
 506REG32(SEC_DBG_DATA_327, 0x1054c)
 507REG32(SEC_DBG_DATA_328, 0x10550)
 508REG32(SEC_DBG_DATA_329, 0x10554)
 509REG32(SEC_DBG_DATA_330, 0x10558)
 510REG32(SEC_DBG_DATA_331, 0x1055c)
 511REG32(SEC_DBG_DATA_332, 0x10560)
 512REG32(SEC_DBG_DATA_333, 0x10564)
 513REG32(SEC_DBG_DATA_334, 0x10568)
 514REG32(SEC_DBG_DATA_335, 0x1056c)
 515REG32(SEC_DBG_DATA_336, 0x10570)
 516REG32(SEC_DBG_DATA_337, 0x10574)
 517REG32(SEC_DBG_DATA_338, 0x10578)
 518REG32(SEC_DBG_DATA_339, 0x1057c)
 519REG32(SEC_DBG_DATA_340, 0x10580)
 520REG32(SEC_DBG_DATA_341, 0x10584)
 521REG32(SEC_DBG_DATA_342, 0x10588)
 522REG32(SEC_DBG_DATA_343, 0x1058c)
 523REG32(SEC_DBG_DATA_344, 0x10590)
 524REG32(SEC_DBG_DATA_345, 0x10594)
 525REG32(SEC_DBG_DATA_346, 0x10598)
 526REG32(SEC_DBG_DATA_347, 0x1059c)
 527REG32(SEC_DBG_DATA_348, 0x105a0)
 528REG32(SEC_DBG_DATA_349, 0x105a4)
 529REG32(SEC_DBG_DATA_350, 0x105a8)
 530REG32(SEC_DBG_DATA_351, 0x105ac)
 531REG32(SEC_DBG_DATA_352, 0x105b0)
 532REG32(SEC_DBG_DATA_353, 0x105b4)
 533REG32(SEC_DBG_DATA_354, 0x105b8)
 534REG32(SEC_DBG_DATA_355, 0x105bc)
 535REG32(SEC_DBG_DATA_356, 0x105c0)
 536REG32(SEC_DBG_DATA_357, 0x105c4)
 537REG32(SEC_DBG_DATA_358, 0x105c8)
 538REG32(SEC_DBG_DATA_359, 0x105cc)
 539REG32(SEC_DBG_DATA_360, 0x105d0)
 540REG32(SEC_DBG_DATA_361, 0x105d4)
 541REG32(SEC_DBG_DATA_362, 0x105d8)
 542REG32(SEC_DBG_DATA_363, 0x105dc)
 543REG32(SEC_DBG_DATA_364, 0x105e0)
 544REG32(SEC_DBG_DATA_365, 0x105e4)
 545REG32(SEC_DBG_DATA_366, 0x105e8)
 546REG32(SEC_DBG_DATA_367, 0x105ec)
 547REG32(SEC_DBG_DATA_368, 0x105f0)
 548REG32(SEC_DBG_DATA_369, 0x105f4)
 549REG32(SEC_DBG_DATA_370, 0x105f8)
 550REG32(SEC_DBG_DATA_371, 0x105fc)
 551REG32(SEC_DBG_DATA_372, 0x10600)
 552REG32(SEC_DBG_DATA_373, 0x10604)
 553REG32(SEC_DBG_DATA_374, 0x10608)
 554REG32(SEC_DBG_DATA_375, 0x1060c)
 555REG32(SEC_DBG_DATA_376, 0x10610)
 556REG32(SEC_DBG_DATA_377, 0x10614)
 557REG32(SEC_DBG_DATA_378, 0x10618)
 558REG32(SEC_DBG_DATA_379, 0x1061c)
 559REG32(SEC_DBG_DATA_380, 0x10620)
 560REG32(SEC_DBG_DATA_381, 0x10624)
 561REG32(SEC_DBG_DATA_382, 0x10628)
 562REG32(SEC_DBG_DATA_383, 0x1062c)
 563REG32(SEC_DBG_DATA_384, 0x10630)
 564REG32(SEC_DBG_DATA_385, 0x10634)
 565REG32(SEC_DBG_DATA_386, 0x10638)
 566REG32(SEC_DBG_DATA_387, 0x1063c)
 567REG32(SEC_DBG_DATA_388, 0x10640)
 568REG32(SEC_DBG_DATA_389, 0x10644)
 569REG32(SEC_DBG_DATA_390, 0x10648)
 570REG32(SEC_DBG_DATA_391, 0x1064c)
 571REG32(SEC_DBG_DATA_392, 0x10650)
 572REG32(SEC_DBG_DATA_393, 0x10654)
 573REG32(SEC_DBG_DATA_394, 0x10658)
 574REG32(SEC_DBG_DATA_395, 0x1065c)
 575REG32(SEC_DBG_DATA_396, 0x10660)
 576REG32(SEC_DBG_DATA_397, 0x10664)
 577REG32(SEC_DBG_DATA_398, 0x10668)
 578REG32(SEC_DBG_DATA_399, 0x1066c)
 579REG32(SEC_DBG_DATA_400, 0x10670)
 580REG32(SEC_DBG_DATA_401, 0x10674)
 581REG32(SEC_DBG_DATA_402, 0x10678)
 582REG32(SEC_DBG_DATA_403, 0x1067c)
 583REG32(SEC_DBG_DATA_404, 0x10680)
 584REG32(SEC_DBG_DATA_405, 0x10684)
 585REG32(SEC_DBG_DATA_406, 0x10688)
 586REG32(SEC_DBG_DATA_407, 0x1068c)
 587REG32(SEC_DBG_DATA_408, 0x10690)
 588REG32(SEC_DBG_DATA_409, 0x10694)
 589REG32(SEC_DBG_DATA_410, 0x10698)
 590REG32(SEC_DBG_DATA_411, 0x1069c)
 591REG32(SEC_DBG_DATA_412, 0x106a0)
 592REG32(SEC_DBG_DATA_413, 0x106a4)
 593REG32(SEC_DBG_DATA_414, 0x106a8)
 594REG32(SEC_DBG_DATA_415, 0x106ac)
 595REG32(SEC_DBG_DATA_416, 0x106b0)
 596REG32(SEC_DBG_DATA_417, 0x106b4)
 597REG32(SEC_DBG_DATA_418, 0x106b8)
 598REG32(SEC_DBG_DATA_419, 0x106bc)
 599REG32(SEC_DBG_DATA_420, 0x106c0)
 600REG32(SEC_DBG_DATA_421, 0x106c4)
 601REG32(SEC_DBG_DATA_422, 0x106c8)
 602REG32(SEC_DBG_DATA_423, 0x106cc)
 603REG32(SEC_DBG_DATA_424, 0x106d0)
 604REG32(SEC_DBG_DATA_425, 0x106d4)
 605REG32(SEC_DBG_DATA_426, 0x106d8)
 606REG32(SEC_DBG_DATA_427, 0x106dc)
 607REG32(SEC_DBG_DATA_428, 0x106e0)
 608REG32(SEC_DBG_DATA_429, 0x106e4)
 609REG32(SEC_DBG_DATA_430, 0x106e8)
 610REG32(SEC_DBG_DATA_431, 0x106ec)
 611REG32(SEC_DBG_DATA_432, 0x106f0)
 612REG32(SEC_DBG_DATA_433, 0x106f4)
 613REG32(SEC_DBG_DATA_434, 0x106f8)
 614REG32(SEC_DBG_DATA_435, 0x106fc)
 615REG32(SEC_DBG_DATA_436, 0x10700)
 616REG32(SEC_DBG_DATA_437, 0x10704)
 617REG32(SEC_DBG_DATA_438, 0x10708)
 618REG32(SEC_DBG_DATA_439, 0x1070c)
 619REG32(SEC_DBG_DATA_440, 0x10710)
 620REG32(SEC_DBG_DATA_441, 0x10714)
 621REG32(SEC_DBG_DATA_442, 0x10718)
 622REG32(SEC_DBG_DATA_443, 0x1071c)
 623REG32(SEC_DBG_DATA_444, 0x10720)
 624REG32(SEC_DBG_DATA_445, 0x10724)
 625REG32(SEC_DBG_DATA_446, 0x10728)
 626REG32(SEC_DBG_DATA_447, 0x1072c)
 627REG32(SEC_DBG_DATA_448, 0x10730)
 628REG32(SEC_DBG_DATA_449, 0x10734)
 629REG32(SEC_DBG_DATA_450, 0x10738)
 630REG32(SEC_DBG_DATA_451, 0x1073c)
 631REG32(SEC_DBG_DATA_452, 0x10740)
 632REG32(SEC_DBG_DATA_453, 0x10744)
 633REG32(SEC_DBG_DATA_454, 0x10748)
 634REG32(SEC_DBG_DATA_455, 0x1074c)
 635REG32(SEC_DBG_DATA_456, 0x10750)
 636REG32(SEC_DBG_DATA_457, 0x10754)
 637REG32(SEC_DBG_DATA_458, 0x10758)
 638REG32(SEC_DBG_DATA_459, 0x1075c)
 639REG32(SEC_DBG_DATA_460, 0x10760)
 640REG32(SEC_DBG_DATA_461, 0x10764)
 641REG32(SEC_DBG_DATA_462, 0x10768)
 642REG32(SEC_DBG_DATA_463, 0x1076c)
 643REG32(SEC_DBG_DATA_464, 0x10770)
 644REG32(SEC_DBG_DATA_465, 0x10774)
 645REG32(SEC_DBG_DATA_466, 0x10778)
 646REG32(SEC_DBG_DATA_467, 0x1077c)
 647REG32(SEC_DBG_DATA_468, 0x10780)
 648REG32(SEC_DBG_DATA_469, 0x10784)
 649REG32(SEC_DBG_DATA_470, 0x10788)
 650REG32(SEC_DBG_DATA_471, 0x1078c)
 651REG32(SEC_DBG_DATA_472, 0x10790)
 652REG32(SEC_DBG_DATA_473, 0x10794)
 653REG32(SEC_DBG_DATA_474, 0x10798)
 654REG32(SEC_DBG_DATA_475, 0x1079c)
 655REG32(SEC_DBG_DATA_476, 0x107a0)
 656REG32(SEC_DBG_DATA_477, 0x107a4)
 657REG32(SEC_DBG_DATA_478, 0x107a8)
 658REG32(SEC_DBG_DATA_479, 0x107ac)
 659REG32(SEC_DBG_DATA_480, 0x107b0)
 660REG32(SEC_DBG_DATA_481, 0x107b4)
 661REG32(SEC_DBG_DATA_482, 0x107b8)
 662REG32(SEC_DBG_DATA_483, 0x107bc)
 663REG32(SEC_DBG_DATA_484, 0x107c0)
 664REG32(SEC_DBG_DATA_485, 0x107c4)
 665REG32(SEC_DBG_DATA_486, 0x107c8)
 666REG32(SEC_DBG_DATA_487, 0x107cc)
 667REG32(SEC_DBG_DATA_488, 0x107d0)
 668REG32(SEC_DBG_DATA_489, 0x107d4)
 669REG32(SEC_DBG_DATA_490, 0x107d8)
 670REG32(SEC_DBG_DATA_491, 0x107dc)
 671REG32(SEC_DBG_DATA_492, 0x107e0)
 672REG32(SEC_DBG_DATA_493, 0x107e4)
 673REG32(SEC_DBG_DATA_494, 0x107e8)
 674REG32(SEC_DBG_DATA_495, 0x107ec)
 675REG32(SEC_DBG_DATA_496, 0x107f0)
 676REG32(SEC_DBG_DATA_497, 0x107f4)
 677REG32(SEC_DBG_DATA_498, 0x107f8)
 678REG32(SEC_DBG_DATA_499, 0x107fc)
 679REG32(SEC_DBG_DATA_500, 0x10800)
 680REG32(SEC_DBG_DATA_501, 0x10804)
 681REG32(SEC_DBG_DATA_502, 0x10808)
 682REG32(SEC_DBG_DATA_503, 0x1080c)
 683REG32(SEC_DBG_DATA_504, 0x10810)
 684REG32(SEC_DBG_DATA_505, 0x10814)
 685REG32(SEC_DBG_DATA_506, 0x10818)
 686REG32(SEC_DBG_DATA_507, 0x1081c)
 687REG32(SEC_DBG_DATA_508, 0x10820)
 688REG32(SEC_DBG_DATA_509, 0x10824)
 689REG32(SEC_DBG_DATA_510, 0x10828)
 690REG32(SEC_DBG_DATA_511, 0x1082c)
 691
 692#define R_MAX (R_SEC_DBG_DATA_511 + 1)
 693
 694#define SEC_DBG_DIS_MASK 0x3
 695#define SEC_LOCK_DBG_DIS_MASK (0x3 << 2)
 696#define PMC_TAP_SLR_TYPE_MONO 0x7
 697
 698typedef struct PMC_TAP {
 699    SysBusDevice parent_obj;
 700    MemoryRegion iomem;
 701    qemu_irq irq_sec_dbg_int;
 702    qemu_irq irq_pmc_tap_int;
 703    CharBackend chr;
 704
 705    uint8_t platform;
 706    uint8_t sec_dbg_dis;
 707    uint32_t slr_type;
 708    uint32_t payload_received;
 709    bool auth_data_load;
 710    bool first_image_done;
 711    uint32_t regs[R_MAX];
 712    RegisterInfo regs_info[R_MAX];
 713} PMC_TAP;
 714
 715static void sec_dbg_int_update_irq(PMC_TAP *s)
 716{
 717    bool pending = s->regs[R_SEC_DBG_INT_STATUS] & ~s->regs[R_SEC_DBG_INT_MASK];
 718    qemu_set_irq(s->irq_sec_dbg_int, pending);
 719}
 720
 721static void sec_dbg_int_status_postw(RegisterInfo *reg, uint64_t val64)
 722{
 723    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 724    sec_dbg_int_update_irq(s);
 725}
 726
 727static uint64_t sec_dbg_int_en_prew(RegisterInfo *reg, uint64_t val64)
 728{
 729    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 730    uint32_t val = val64;
 731
 732    s->regs[R_SEC_DBG_INT_MASK] &= ~val;
 733    sec_dbg_int_update_irq(s);
 734    return 0;
 735}
 736
 737static uint64_t sec_dbg_int_dis_prew(RegisterInfo *reg, uint64_t val64)
 738{
 739    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 740    uint32_t val = val64;
 741
 742    s->regs[R_SEC_DBG_INT_MASK] |= val;
 743    sec_dbg_int_update_irq(s);
 744    return 0;
 745}
 746
 747static void pmc_tap_int_update_irq(PMC_TAP *s)
 748{
 749    bool pending = s->regs[R_PMC_TAP_INT_STATUS] & ~s->regs[R_PMC_TAP_INT_MASK];
 750    qemu_set_irq(s->irq_pmc_tap_int, pending);
 751}
 752
 753static void pmc_tap_int_status_postw(RegisterInfo *reg, uint64_t val64)
 754{
 755    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 756    pmc_tap_int_update_irq(s);
 757}
 758
 759static uint64_t pmc_tap_int_en_prew(RegisterInfo *reg, uint64_t val64)
 760{
 761    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 762    uint32_t val = val64;
 763
 764    s->regs[R_PMC_TAP_INT_MASK] &= ~val;
 765    pmc_tap_int_update_irq(s);
 766    return 0;
 767}
 768
 769static uint64_t pmc_tap_int_dis_prew(RegisterInfo *reg, uint64_t val64)
 770{
 771    PMC_TAP *s = XILINX_PMC_TAP(reg->opaque);
 772    uint32_t val = val64;
 773
 774    s->regs[R_PMC_TAP_INT_MASK] |= val;
 775    pmc_tap_int_update_irq(s);
 776    return 0;
 777}
 778
 779static RegisterAccessInfo pmc_tap_regs_info[] = {
 780    {   .name = "IDCODE",  .addr = A_IDCODE,
 781        .ro = 0xffffffff,
 782    },{ .name = "VERSION",  .addr = A_VERSION,
 783        .ro = 0xffffffff,
 784    },{ .name = "USERCODE",  .addr = A_USERCODE,
 785    },{ .name = "PMC_TAP_INT_STATUS",  .addr = A_PMC_TAP_INT_STATUS,
 786        .w1c = 0x1f,
 787        .post_write = pmc_tap_int_status_postw,
 788    },{ .name = "PMC_TAP_INT_MASK",  .addr = A_PMC_TAP_INT_MASK,
 789        .reset = 0x1f,
 790        .ro = 0x1f,
 791    },{ .name = "PMC_TAP_INT_EN",  .addr = A_PMC_TAP_INT_EN,
 792        .pre_write = pmc_tap_int_en_prew,
 793    },{ .name = "PMC_TAP_INT_DIS",  .addr = A_PMC_TAP_INT_DIS,
 794        .pre_write = pmc_tap_int_dis_prew,
 795    },{ .name = "DPC_MUX_SEL",  .addr = A_DPC_MUX_SEL,
 796    },{ .name = "SLR_TYPE",  .addr = A_SLR_TYPE,
 797        .ro = 0x7,
 798    },{ .name = "INST_MASK_0",  .addr = A_INST_MASK_0,
 799        .reset = 0x3dfff8fd,
 800    },{ .name = "INST_MASK_1",  .addr = A_INST_MASK_1,
 801        .reset = 0x1dbff8f,
 802    },{ .name = "DAP_CFG",  .addr = A_DAP_CFG,
 803    },{ .name = "DAP_SECURITY",  .addr = A_DAP_SECURITY,
 804    },{ .name = "JTAG_CTRL",  .addr = A_JTAG_CTRL,
 805    },{ .name = "JTAG_TEST",  .addr = A_JTAG_TEST,
 806    },{ .name = "SEC_DBG_INT_STATUS",  .addr = A_SEC_DBG_INT_STATUS,
 807        .w1c = 0x1,
 808        .post_write = sec_dbg_int_status_postw,
 809    },{ .name = "SEC_DBG_INT_MASK",  .addr = A_SEC_DBG_INT_MASK,
 810        .reset = 0x1,
 811        .ro = 0x1,
 812    },{ .name = "SEC_DBG_INT_EN",  .addr = A_SEC_DBG_INT_EN,
 813        .pre_write = sec_dbg_int_en_prew,
 814    },{ .name = "SEC_DBG_INT_DIS",  .addr = A_SEC_DBG_INT_DIS,
 815        .pre_write = sec_dbg_int_dis_prew,
 816    },{ .name = "SEC_DBG_DATA_0",  .addr = A_SEC_DBG_DATA_0,
 817        .ro = 0xffffffff,
 818    },{ .name = "SEC_DBG_DATA_1",  .addr = A_SEC_DBG_DATA_1,
 819        .ro = 0xffffffff,
 820    },{ .name = "SEC_DBG_DATA_2",  .addr = A_SEC_DBG_DATA_2,
 821        .ro = 0xffffffff,
 822    },{ .name = "SEC_DBG_DATA_3",  .addr = A_SEC_DBG_DATA_3,
 823        .ro = 0xffffffff,
 824    },{ .name = "SEC_DBG_DATA_4",  .addr = A_SEC_DBG_DATA_4,
 825        .ro = 0xffffffff,
 826    },{ .name = "SEC_DBG_DATA_5",  .addr = A_SEC_DBG_DATA_5,
 827        .ro = 0xffffffff,
 828    },{ .name = "SEC_DBG_DATA_6",  .addr = A_SEC_DBG_DATA_6,
 829        .ro = 0xffffffff,
 830    },{ .name = "SEC_DBG_DATA_7",  .addr = A_SEC_DBG_DATA_7,
 831        .ro = 0xffffffff,
 832    },{ .name = "SEC_DBG_DATA_8",  .addr = A_SEC_DBG_DATA_8,
 833        .ro = 0xffffffff,
 834    },{ .name = "SEC_DBG_DATA_9",  .addr = A_SEC_DBG_DATA_9,
 835        .ro = 0xffffffff,
 836    },{ .name = "SEC_DBG_DATA_10",  .addr = A_SEC_DBG_DATA_10,
 837        .ro = 0xffffffff,
 838    },{ .name = "SEC_DBG_DATA_11",  .addr = A_SEC_DBG_DATA_11,
 839        .ro = 0xffffffff,
 840    },{ .name = "SEC_DBG_DATA_12",  .addr = A_SEC_DBG_DATA_12,
 841        .ro = 0xffffffff,
 842    },{ .name = "SEC_DBG_DATA_13",  .addr = A_SEC_DBG_DATA_13,
 843        .ro = 0xffffffff,
 844    },{ .name = "SEC_DBG_DATA_14",  .addr = A_SEC_DBG_DATA_14,
 845        .ro = 0xffffffff,
 846    },{ .name = "SEC_DBG_DATA_15",  .addr = A_SEC_DBG_DATA_15,
 847        .ro = 0xffffffff,
 848    },{ .name = "SEC_DBG_DATA_16",  .addr = A_SEC_DBG_DATA_16,
 849        .ro = 0xffffffff,
 850    },{ .name = "SEC_DBG_DATA_17",  .addr = A_SEC_DBG_DATA_17,
 851        .ro = 0xffffffff,
 852    },{ .name = "SEC_DBG_DATA_18",  .addr = A_SEC_DBG_DATA_18,
 853        .ro = 0xffffffff,
 854    },{ .name = "SEC_DBG_DATA_19",  .addr = A_SEC_DBG_DATA_19,
 855        .ro = 0xffffffff,
 856    },{ .name = "SEC_DBG_DATA_20",  .addr = A_SEC_DBG_DATA_20,
 857        .ro = 0xffffffff,
 858    },{ .name = "SEC_DBG_DATA_21",  .addr = A_SEC_DBG_DATA_21,
 859        .ro = 0xffffffff,
 860    },{ .name = "SEC_DBG_DATA_22",  .addr = A_SEC_DBG_DATA_22,
 861        .ro = 0xffffffff,
 862    },{ .name = "SEC_DBG_DATA_23",  .addr = A_SEC_DBG_DATA_23,
 863        .ro = 0xffffffff,
 864    },{ .name = "SEC_DBG_DATA_24",  .addr = A_SEC_DBG_DATA_24,
 865        .ro = 0xffffffff,
 866    },{ .name = "SEC_DBG_DATA_25",  .addr = A_SEC_DBG_DATA_25,
 867        .ro = 0xffffffff,
 868    },{ .name = "SEC_DBG_DATA_26",  .addr = A_SEC_DBG_DATA_26,
 869        .ro = 0xffffffff,
 870    },{ .name = "SEC_DBG_DATA_27",  .addr = A_SEC_DBG_DATA_27,
 871        .ro = 0xffffffff,
 872    },{ .name = "SEC_DBG_DATA_28",  .addr = A_SEC_DBG_DATA_28,
 873        .ro = 0xffffffff,
 874    },{ .name = "SEC_DBG_DATA_29",  .addr = A_SEC_DBG_DATA_29,
 875        .ro = 0xffffffff,
 876    },{ .name = "SEC_DBG_DATA_30",  .addr = A_SEC_DBG_DATA_30,
 877        .ro = 0xffffffff,
 878    },{ .name = "SEC_DBG_DATA_31",  .addr = A_SEC_DBG_DATA_31,
 879        .ro = 0xffffffff,
 880    },{ .name = "SEC_DBG_DATA_32",  .addr = A_SEC_DBG_DATA_32,
 881        .ro = 0xffffffff,
 882    },{ .name = "SEC_DBG_DATA_33",  .addr = A_SEC_DBG_DATA_33,
 883        .ro = 0xffffffff,
 884    },{ .name = "SEC_DBG_DATA_34",  .addr = A_SEC_DBG_DATA_34,
 885        .ro = 0xffffffff,
 886    },{ .name = "SEC_DBG_DATA_35",  .addr = A_SEC_DBG_DATA_35,
 887        .ro = 0xffffffff,
 888    },{ .name = "SEC_DBG_DATA_36",  .addr = A_SEC_DBG_DATA_36,
 889        .ro = 0xffffffff,
 890    },{ .name = "SEC_DBG_DATA_37",  .addr = A_SEC_DBG_DATA_37,
 891        .ro = 0xffffffff,
 892    },{ .name = "SEC_DBG_DATA_38",  .addr = A_SEC_DBG_DATA_38,
 893        .ro = 0xffffffff,
 894    },{ .name = "SEC_DBG_DATA_39",  .addr = A_SEC_DBG_DATA_39,
 895        .ro = 0xffffffff,
 896    },{ .name = "SEC_DBG_DATA_40",  .addr = A_SEC_DBG_DATA_40,
 897        .ro = 0xffffffff,
 898    },{ .name = "SEC_DBG_DATA_41",  .addr = A_SEC_DBG_DATA_41,
 899        .ro = 0xffffffff,
 900    },{ .name = "SEC_DBG_DATA_42",  .addr = A_SEC_DBG_DATA_42,
 901        .ro = 0xffffffff,
 902    },{ .name = "SEC_DBG_DATA_43",  .addr = A_SEC_DBG_DATA_43,
 903        .ro = 0xffffffff,
 904    },{ .name = "SEC_DBG_DATA_44",  .addr = A_SEC_DBG_DATA_44,
 905        .ro = 0xffffffff,
 906    },{ .name = "SEC_DBG_DATA_45",  .addr = A_SEC_DBG_DATA_45,
 907        .ro = 0xffffffff,
 908    },{ .name = "SEC_DBG_DATA_46",  .addr = A_SEC_DBG_DATA_46,
 909        .ro = 0xffffffff,
 910    },{ .name = "SEC_DBG_DATA_47",  .addr = A_SEC_DBG_DATA_47,
 911        .ro = 0xffffffff,
 912    },{ .name = "SEC_DBG_DATA_48",  .addr = A_SEC_DBG_DATA_48,
 913        .ro = 0xffffffff,
 914    },{ .name = "SEC_DBG_DATA_49",  .addr = A_SEC_DBG_DATA_49,
 915        .ro = 0xffffffff,
 916    },{ .name = "SEC_DBG_DATA_50",  .addr = A_SEC_DBG_DATA_50,
 917        .ro = 0xffffffff,
 918    },{ .name = "SEC_DBG_DATA_51",  .addr = A_SEC_DBG_DATA_51,
 919        .ro = 0xffffffff,
 920    },{ .name = "SEC_DBG_DATA_52",  .addr = A_SEC_DBG_DATA_52,
 921        .ro = 0xffffffff,
 922    },{ .name = "SEC_DBG_DATA_53",  .addr = A_SEC_DBG_DATA_53,
 923        .ro = 0xffffffff,
 924    },{ .name = "SEC_DBG_DATA_54",  .addr = A_SEC_DBG_DATA_54,
 925        .ro = 0xffffffff,
 926    },{ .name = "SEC_DBG_DATA_55",  .addr = A_SEC_DBG_DATA_55,
 927        .ro = 0xffffffff,
 928    },{ .name = "SEC_DBG_DATA_56",  .addr = A_SEC_DBG_DATA_56,
 929        .ro = 0xffffffff,
 930    },{ .name = "SEC_DBG_DATA_57",  .addr = A_SEC_DBG_DATA_57,
 931        .ro = 0xffffffff,
 932    },{ .name = "SEC_DBG_DATA_58",  .addr = A_SEC_DBG_DATA_58,
 933        .ro = 0xffffffff,
 934    },{ .name = "SEC_DBG_DATA_59",  .addr = A_SEC_DBG_DATA_59,
 935        .ro = 0xffffffff,
 936    },{ .name = "SEC_DBG_DATA_60",  .addr = A_SEC_DBG_DATA_60,
 937        .ro = 0xffffffff,
 938    },{ .name = "SEC_DBG_DATA_61",  .addr = A_SEC_DBG_DATA_61,
 939        .ro = 0xffffffff,
 940    },{ .name = "SEC_DBG_DATA_62",  .addr = A_SEC_DBG_DATA_62,
 941        .ro = 0xffffffff,
 942    },{ .name = "SEC_DBG_DATA_63",  .addr = A_SEC_DBG_DATA_63,
 943        .ro = 0xffffffff,
 944    },{ .name = "SEC_DBG_DATA_64",  .addr = A_SEC_DBG_DATA_64,
 945        .ro = 0xffffffff,
 946    },{ .name = "SEC_DBG_DATA_65",  .addr = A_SEC_DBG_DATA_65,
 947        .ro = 0xffffffff,
 948    },{ .name = "SEC_DBG_DATA_66",  .addr = A_SEC_DBG_DATA_66,
 949        .ro = 0xffffffff,
 950    },{ .name = "SEC_DBG_DATA_67",  .addr = A_SEC_DBG_DATA_67,
 951        .ro = 0xffffffff,
 952    },{ .name = "SEC_DBG_DATA_68",  .addr = A_SEC_DBG_DATA_68,
 953        .ro = 0xffffffff,
 954    },{ .name = "SEC_DBG_DATA_69",  .addr = A_SEC_DBG_DATA_69,
 955        .ro = 0xffffffff,
 956    },{ .name = "SEC_DBG_DATA_70",  .addr = A_SEC_DBG_DATA_70,
 957        .ro = 0xffffffff,
 958    },{ .name = "SEC_DBG_DATA_71",  .addr = A_SEC_DBG_DATA_71,
 959        .ro = 0xffffffff,
 960    },{ .name = "SEC_DBG_DATA_72",  .addr = A_SEC_DBG_DATA_72,
 961        .ro = 0xffffffff,
 962    },{ .name = "SEC_DBG_DATA_73",  .addr = A_SEC_DBG_DATA_73,
 963        .ro = 0xffffffff,
 964    },{ .name = "SEC_DBG_DATA_74",  .addr = A_SEC_DBG_DATA_74,
 965        .ro = 0xffffffff,
 966    },{ .name = "SEC_DBG_DATA_75",  .addr = A_SEC_DBG_DATA_75,
 967        .ro = 0xffffffff,
 968    },{ .name = "SEC_DBG_DATA_76",  .addr = A_SEC_DBG_DATA_76,
 969        .ro = 0xffffffff,
 970    },{ .name = "SEC_DBG_DATA_77",  .addr = A_SEC_DBG_DATA_77,
 971        .ro = 0xffffffff,
 972    },{ .name = "SEC_DBG_DATA_78",  .addr = A_SEC_DBG_DATA_78,
 973        .ro = 0xffffffff,
 974    },{ .name = "SEC_DBG_DATA_79",  .addr = A_SEC_DBG_DATA_79,
 975        .ro = 0xffffffff,
 976    },{ .name = "SEC_DBG_DATA_80",  .addr = A_SEC_DBG_DATA_80,
 977        .ro = 0xffffffff,
 978    },{ .name = "SEC_DBG_DATA_81",  .addr = A_SEC_DBG_DATA_81,
 979        .ro = 0xffffffff,
 980    },{ .name = "SEC_DBG_DATA_82",  .addr = A_SEC_DBG_DATA_82,
 981        .ro = 0xffffffff,
 982    },{ .name = "SEC_DBG_DATA_83",  .addr = A_SEC_DBG_DATA_83,
 983        .ro = 0xffffffff,
 984    },{ .name = "SEC_DBG_DATA_84",  .addr = A_SEC_DBG_DATA_84,
 985        .ro = 0xffffffff,
 986    },{ .name = "SEC_DBG_DATA_85",  .addr = A_SEC_DBG_DATA_85,
 987        .ro = 0xffffffff,
 988    },{ .name = "SEC_DBG_DATA_86",  .addr = A_SEC_DBG_DATA_86,
 989        .ro = 0xffffffff,
 990    },{ .name = "SEC_DBG_DATA_87",  .addr = A_SEC_DBG_DATA_87,
 991        .ro = 0xffffffff,
 992    },{ .name = "SEC_DBG_DATA_88",  .addr = A_SEC_DBG_DATA_88,
 993        .ro = 0xffffffff,
 994    },{ .name = "SEC_DBG_DATA_89",  .addr = A_SEC_DBG_DATA_89,
 995        .ro = 0xffffffff,
 996    },{ .name = "SEC_DBG_DATA_90",  .addr = A_SEC_DBG_DATA_90,
 997        .ro = 0xffffffff,
 998    },{ .name = "SEC_DBG_DATA_91",  .addr = A_SEC_DBG_DATA_91,
 999        .ro = 0xffffffff,
1000    },{ .name = "SEC_DBG_DATA_92",  .addr = A_SEC_DBG_DATA_92,
1001        .ro = 0xffffffff,
1002    },{ .name = "SEC_DBG_DATA_93",  .addr = A_SEC_DBG_DATA_93,
1003        .ro = 0xffffffff,
1004    },{ .name = "SEC_DBG_DATA_94",  .addr = A_SEC_DBG_DATA_94,
1005        .ro = 0xffffffff,
1006    },{ .name = "SEC_DBG_DATA_95",  .addr = A_SEC_DBG_DATA_95,
1007        .ro = 0xffffffff,
1008    },{ .name = "SEC_DBG_DATA_96",  .addr = A_SEC_DBG_DATA_96,
1009        .ro = 0xffffffff,
1010    },{ .name = "SEC_DBG_DATA_97",  .addr = A_SEC_DBG_DATA_97,
1011        .ro = 0xffffffff,
1012    },{ .name = "SEC_DBG_DATA_98",  .addr = A_SEC_DBG_DATA_98,
1013        .ro = 0xffffffff,
1014    },{ .name = "SEC_DBG_DATA_99",  .addr = A_SEC_DBG_DATA_99,
1015        .ro = 0xffffffff,
1016    },{ .name = "SEC_DBG_DATA_100",  .addr = A_SEC_DBG_DATA_100,
1017        .ro = 0xffffffff,
1018    },{ .name = "SEC_DBG_DATA_101",  .addr = A_SEC_DBG_DATA_101,
1019        .ro = 0xffffffff,
1020    },{ .name = "SEC_DBG_DATA_102",  .addr = A_SEC_DBG_DATA_102,
1021        .ro = 0xffffffff,
1022    },{ .name = "SEC_DBG_DATA_103",  .addr = A_SEC_DBG_DATA_103,
1023        .ro = 0xffffffff,
1024    },{ .name = "SEC_DBG_DATA_104",  .addr = A_SEC_DBG_DATA_104,
1025        .ro = 0xffffffff,
1026    },{ .name = "SEC_DBG_DATA_105",  .addr = A_SEC_DBG_DATA_105,
1027        .ro = 0xffffffff,
1028    },{ .name = "SEC_DBG_DATA_106",  .addr = A_SEC_DBG_DATA_106,
1029        .ro = 0xffffffff,
1030    },{ .name = "SEC_DBG_DATA_107",  .addr = A_SEC_DBG_DATA_107,
1031        .ro = 0xffffffff,
1032    },{ .name = "SEC_DBG_DATA_108",  .addr = A_SEC_DBG_DATA_108,
1033        .ro = 0xffffffff,
1034    },{ .name = "SEC_DBG_DATA_109",  .addr = A_SEC_DBG_DATA_109,
1035        .ro = 0xffffffff,
1036    },{ .name = "SEC_DBG_DATA_110",  .addr = A_SEC_DBG_DATA_110,
1037        .ro = 0xffffffff,
1038    },{ .name = "SEC_DBG_DATA_111",  .addr = A_SEC_DBG_DATA_111,
1039        .ro = 0xffffffff,
1040    },{ .name = "SEC_DBG_DATA_112",  .addr = A_SEC_DBG_DATA_112,
1041        .ro = 0xffffffff,
1042    },{ .name = "SEC_DBG_DATA_113",  .addr = A_SEC_DBG_DATA_113,
1043        .ro = 0xffffffff,
1044    },{ .name = "SEC_DBG_DATA_114",  .addr = A_SEC_DBG_DATA_114,
1045        .ro = 0xffffffff,
1046    },{ .name = "SEC_DBG_DATA_115",  .addr = A_SEC_DBG_DATA_115,
1047        .ro = 0xffffffff,
1048    },{ .name = "SEC_DBG_DATA_116",  .addr = A_SEC_DBG_DATA_116,
1049        .ro = 0xffffffff,
1050    },{ .name = "SEC_DBG_DATA_117",  .addr = A_SEC_DBG_DATA_117,
1051        .ro = 0xffffffff,
1052    },{ .name = "SEC_DBG_DATA_118",  .addr = A_SEC_DBG_DATA_118,
1053        .ro = 0xffffffff,
1054    },{ .name = "SEC_DBG_DATA_119",  .addr = A_SEC_DBG_DATA_119,
1055        .ro = 0xffffffff,
1056    },{ .name = "SEC_DBG_DATA_120",  .addr = A_SEC_DBG_DATA_120,
1057        .ro = 0xffffffff,
1058    },{ .name = "SEC_DBG_DATA_121",  .addr = A_SEC_DBG_DATA_121,
1059        .ro = 0xffffffff,
1060    },{ .name = "SEC_DBG_DATA_122",  .addr = A_SEC_DBG_DATA_122,
1061        .ro = 0xffffffff,
1062    },{ .name = "SEC_DBG_DATA_123",  .addr = A_SEC_DBG_DATA_123,
1063        .ro = 0xffffffff,
1064    },{ .name = "SEC_DBG_DATA_124",  .addr = A_SEC_DBG_DATA_124,
1065        .ro = 0xffffffff,
1066    },{ .name = "SEC_DBG_DATA_125",  .addr = A_SEC_DBG_DATA_125,
1067        .ro = 0xffffffff,
1068    },{ .name = "SEC_DBG_DATA_126",  .addr = A_SEC_DBG_DATA_126,
1069        .ro = 0xffffffff,
1070    },{ .name = "SEC_DBG_DATA_127",  .addr = A_SEC_DBG_DATA_127,
1071        .ro = 0xffffffff,
1072    },{ .name = "SEC_DBG_DATA_128",  .addr = A_SEC_DBG_DATA_128,
1073        .ro = 0xffffffff,
1074    },{ .name = "SEC_DBG_DATA_129",  .addr = A_SEC_DBG_DATA_129,
1075        .ro = 0xffffffff,
1076    },{ .name = "SEC_DBG_DATA_130",  .addr = A_SEC_DBG_DATA_130,
1077        .ro = 0xffffffff,
1078    },{ .name = "SEC_DBG_DATA_131",  .addr = A_SEC_DBG_DATA_131,
1079        .ro = 0xffffffff,
1080    },{ .name = "SEC_DBG_DATA_132",  .addr = A_SEC_DBG_DATA_132,
1081        .ro = 0xffffffff,
1082    },{ .name = "SEC_DBG_DATA_133",  .addr = A_SEC_DBG_DATA_133,
1083        .ro = 0xffffffff,
1084    },{ .name = "SEC_DBG_DATA_134",  .addr = A_SEC_DBG_DATA_134,
1085        .ro = 0xffffffff,
1086    },{ .name = "SEC_DBG_DATA_135",  .addr = A_SEC_DBG_DATA_135,
1087        .ro = 0xffffffff,
1088    },{ .name = "SEC_DBG_DATA_136",  .addr = A_SEC_DBG_DATA_136,
1089        .ro = 0xffffffff,
1090    },{ .name = "SEC_DBG_DATA_137",  .addr = A_SEC_DBG_DATA_137,
1091        .ro = 0xffffffff,
1092    },{ .name = "SEC_DBG_DATA_138",  .addr = A_SEC_DBG_DATA_138,
1093        .ro = 0xffffffff,
1094    },{ .name = "SEC_DBG_DATA_139",  .addr = A_SEC_DBG_DATA_139,
1095        .ro = 0xffffffff,
1096    },{ .name = "SEC_DBG_DATA_140",  .addr = A_SEC_DBG_DATA_140,
1097        .ro = 0xffffffff,
1098    },{ .name = "SEC_DBG_DATA_141",  .addr = A_SEC_DBG_DATA_141,
1099        .ro = 0xffffffff,
1100    },{ .name = "SEC_DBG_DATA_142",  .addr = A_SEC_DBG_DATA_142,
1101        .ro = 0xffffffff,
1102    },{ .name = "SEC_DBG_DATA_143",  .addr = A_SEC_DBG_DATA_143,
1103        .ro = 0xffffffff,
1104    },{ .name = "SEC_DBG_DATA_144",  .addr = A_SEC_DBG_DATA_144,
1105        .ro = 0xffffffff,
1106    },{ .name = "SEC_DBG_DATA_145",  .addr = A_SEC_DBG_DATA_145,
1107        .ro = 0xffffffff,
1108    },{ .name = "SEC_DBG_DATA_146",  .addr = A_SEC_DBG_DATA_146,
1109        .ro = 0xffffffff,
1110    },{ .name = "SEC_DBG_DATA_147",  .addr = A_SEC_DBG_DATA_147,
1111        .ro = 0xffffffff,
1112    },{ .name = "SEC_DBG_DATA_148",  .addr = A_SEC_DBG_DATA_148,
1113        .ro = 0xffffffff,
1114    },{ .name = "SEC_DBG_DATA_149",  .addr = A_SEC_DBG_DATA_149,
1115        .ro = 0xffffffff,
1116    },{ .name = "SEC_DBG_DATA_150",  .addr = A_SEC_DBG_DATA_150,
1117        .ro = 0xffffffff,
1118    },{ .name = "SEC_DBG_DATA_151",  .addr = A_SEC_DBG_DATA_151,
1119        .ro = 0xffffffff,
1120    },{ .name = "SEC_DBG_DATA_152",  .addr = A_SEC_DBG_DATA_152,
1121        .ro = 0xffffffff,
1122    },{ .name = "SEC_DBG_DATA_153",  .addr = A_SEC_DBG_DATA_153,
1123        .ro = 0xffffffff,
1124    },{ .name = "SEC_DBG_DATA_154",  .addr = A_SEC_DBG_DATA_154,
1125        .ro = 0xffffffff,
1126    },{ .name = "SEC_DBG_DATA_155",  .addr = A_SEC_DBG_DATA_155,
1127        .ro = 0xffffffff,
1128    },{ .name = "SEC_DBG_DATA_156",  .addr = A_SEC_DBG_DATA_156,
1129        .ro = 0xffffffff,
1130    },{ .name = "SEC_DBG_DATA_157",  .addr = A_SEC_DBG_DATA_157,
1131        .ro = 0xffffffff,
1132    },{ .name = "SEC_DBG_DATA_158",  .addr = A_SEC_DBG_DATA_158,
1133        .ro = 0xffffffff,
1134    },{ .name = "SEC_DBG_DATA_159",  .addr = A_SEC_DBG_DATA_159,
1135        .ro = 0xffffffff,
1136    },{ .name = "SEC_DBG_DATA_160",  .addr = A_SEC_DBG_DATA_160,
1137        .ro = 0xffffffff,
1138    },{ .name = "SEC_DBG_DATA_161",  .addr = A_SEC_DBG_DATA_161,
1139        .ro = 0xffffffff,
1140    },{ .name = "SEC_DBG_DATA_162",  .addr = A_SEC_DBG_DATA_162,
1141        .ro = 0xffffffff,
1142    },{ .name = "SEC_DBG_DATA_163",  .addr = A_SEC_DBG_DATA_163,
1143        .ro = 0xffffffff,
1144    },{ .name = "SEC_DBG_DATA_164",  .addr = A_SEC_DBG_DATA_164,
1145        .ro = 0xffffffff,
1146    },{ .name = "SEC_DBG_DATA_165",  .addr = A_SEC_DBG_DATA_165,
1147        .ro = 0xffffffff,
1148    },{ .name = "SEC_DBG_DATA_166",  .addr = A_SEC_DBG_DATA_166,
1149        .ro = 0xffffffff,
1150    },{ .name = "SEC_DBG_DATA_167",  .addr = A_SEC_DBG_DATA_167,
1151        .ro = 0xffffffff,
1152    },{ .name = "SEC_DBG_DATA_168",  .addr = A_SEC_DBG_DATA_168,
1153        .ro = 0xffffffff,
1154    },{ .name = "SEC_DBG_DATA_169",  .addr = A_SEC_DBG_DATA_169,
1155        .ro = 0xffffffff,
1156    },{ .name = "SEC_DBG_DATA_170",  .addr = A_SEC_DBG_DATA_170,
1157        .ro = 0xffffffff,
1158    },{ .name = "SEC_DBG_DATA_171",  .addr = A_SEC_DBG_DATA_171,
1159        .ro = 0xffffffff,
1160    },{ .name = "SEC_DBG_DATA_172",  .addr = A_SEC_DBG_DATA_172,
1161        .ro = 0xffffffff,
1162    },{ .name = "SEC_DBG_DATA_173",  .addr = A_SEC_DBG_DATA_173,
1163        .ro = 0xffffffff,
1164    },{ .name = "SEC_DBG_DATA_174",  .addr = A_SEC_DBG_DATA_174,
1165        .ro = 0xffffffff,
1166    },{ .name = "SEC_DBG_DATA_175",  .addr = A_SEC_DBG_DATA_175,
1167        .ro = 0xffffffff,
1168    },{ .name = "SEC_DBG_DATA_176",  .addr = A_SEC_DBG_DATA_176,
1169        .ro = 0xffffffff,
1170    },{ .name = "SEC_DBG_DATA_177",  .addr = A_SEC_DBG_DATA_177,
1171        .ro = 0xffffffff,
1172    },{ .name = "SEC_DBG_DATA_178",  .addr = A_SEC_DBG_DATA_178,
1173        .ro = 0xffffffff,
1174    },{ .name = "SEC_DBG_DATA_179",  .addr = A_SEC_DBG_DATA_179,
1175        .ro = 0xffffffff,
1176    },{ .name = "SEC_DBG_DATA_180",  .addr = A_SEC_DBG_DATA_180,
1177        .ro = 0xffffffff,
1178    },{ .name = "SEC_DBG_DATA_181",  .addr = A_SEC_DBG_DATA_181,
1179        .ro = 0xffffffff,
1180    },{ .name = "SEC_DBG_DATA_182",  .addr = A_SEC_DBG_DATA_182,
1181        .ro = 0xffffffff,
1182    },{ .name = "SEC_DBG_DATA_183",  .addr = A_SEC_DBG_DATA_183,
1183        .ro = 0xffffffff,
1184    },{ .name = "SEC_DBG_DATA_184",  .addr = A_SEC_DBG_DATA_184,
1185        .ro = 0xffffffff,
1186    },{ .name = "SEC_DBG_DATA_185",  .addr = A_SEC_DBG_DATA_185,
1187        .ro = 0xffffffff,
1188    },{ .name = "SEC_DBG_DATA_186",  .addr = A_SEC_DBG_DATA_186,
1189        .ro = 0xffffffff,
1190    },{ .name = "SEC_DBG_DATA_187",  .addr = A_SEC_DBG_DATA_187,
1191        .ro = 0xffffffff,
1192    },{ .name = "SEC_DBG_DATA_188",  .addr = A_SEC_DBG_DATA_188,
1193        .ro = 0xffffffff,
1194    },{ .name = "SEC_DBG_DATA_189",  .addr = A_SEC_DBG_DATA_189,
1195        .ro = 0xffffffff,
1196    },{ .name = "SEC_DBG_DATA_190",  .addr = A_SEC_DBG_DATA_190,
1197        .ro = 0xffffffff,
1198    },{ .name = "SEC_DBG_DATA_191",  .addr = A_SEC_DBG_DATA_191,
1199        .ro = 0xffffffff,
1200    },{ .name = "SEC_DBG_DATA_192",  .addr = A_SEC_DBG_DATA_192,
1201        .ro = 0xffffffff,
1202    },{ .name = "SEC_DBG_DATA_193",  .addr = A_SEC_DBG_DATA_193,
1203        .ro = 0xffffffff,
1204    },{ .name = "SEC_DBG_DATA_194",  .addr = A_SEC_DBG_DATA_194,
1205        .ro = 0xffffffff,
1206    },{ .name = "SEC_DBG_DATA_195",  .addr = A_SEC_DBG_DATA_195,
1207        .ro = 0xffffffff,
1208    },{ .name = "SEC_DBG_DATA_196",  .addr = A_SEC_DBG_DATA_196,
1209        .ro = 0xffffffff,
1210    },{ .name = "SEC_DBG_DATA_197",  .addr = A_SEC_DBG_DATA_197,
1211        .ro = 0xffffffff,
1212    },{ .name = "SEC_DBG_DATA_198",  .addr = A_SEC_DBG_DATA_198,
1213        .ro = 0xffffffff,
1214    },{ .name = "SEC_DBG_DATA_199",  .addr = A_SEC_DBG_DATA_199,
1215        .ro = 0xffffffff,
1216    },{ .name = "SEC_DBG_DATA_200",  .addr = A_SEC_DBG_DATA_200,
1217        .ro = 0xffffffff,
1218    },{ .name = "SEC_DBG_DATA_201",  .addr = A_SEC_DBG_DATA_201,
1219        .ro = 0xffffffff,
1220    },{ .name = "SEC_DBG_DATA_202",  .addr = A_SEC_DBG_DATA_202,
1221        .ro = 0xffffffff,
1222    },{ .name = "SEC_DBG_DATA_203",  .addr = A_SEC_DBG_DATA_203,
1223        .ro = 0xffffffff,
1224    },{ .name = "SEC_DBG_DATA_204",  .addr = A_SEC_DBG_DATA_204,
1225        .ro = 0xffffffff,
1226    },{ .name = "SEC_DBG_DATA_205",  .addr = A_SEC_DBG_DATA_205,
1227        .ro = 0xffffffff,
1228    },{ .name = "SEC_DBG_DATA_206",  .addr = A_SEC_DBG_DATA_206,
1229        .ro = 0xffffffff,
1230    },{ .name = "SEC_DBG_DATA_207",  .addr = A_SEC_DBG_DATA_207,
1231        .ro = 0xffffffff,
1232    },{ .name = "SEC_DBG_DATA_208",  .addr = A_SEC_DBG_DATA_208,
1233        .ro = 0xffffffff,
1234    },{ .name = "SEC_DBG_DATA_209",  .addr = A_SEC_DBG_DATA_209,
1235        .ro = 0xffffffff,
1236    },{ .name = "SEC_DBG_DATA_210",  .addr = A_SEC_DBG_DATA_210,
1237        .ro = 0xffffffff,
1238    },{ .name = "SEC_DBG_DATA_211",  .addr = A_SEC_DBG_DATA_211,
1239        .ro = 0xffffffff,
1240    },{ .name = "SEC_DBG_DATA_212",  .addr = A_SEC_DBG_DATA_212,
1241        .ro = 0xffffffff,
1242    },{ .name = "SEC_DBG_DATA_213",  .addr = A_SEC_DBG_DATA_213,
1243        .ro = 0xffffffff,
1244    },{ .name = "SEC_DBG_DATA_214",  .addr = A_SEC_DBG_DATA_214,
1245        .ro = 0xffffffff,
1246    },{ .name = "SEC_DBG_DATA_215",  .addr = A_SEC_DBG_DATA_215,
1247        .ro = 0xffffffff,
1248    },{ .name = "SEC_DBG_DATA_216",  .addr = A_SEC_DBG_DATA_216,
1249        .ro = 0xffffffff,
1250    },{ .name = "SEC_DBG_DATA_217",  .addr = A_SEC_DBG_DATA_217,
1251        .ro = 0xffffffff,
1252    },{ .name = "SEC_DBG_DATA_218",  .addr = A_SEC_DBG_DATA_218,
1253        .ro = 0xffffffff,
1254    },{ .name = "SEC_DBG_DATA_219",  .addr = A_SEC_DBG_DATA_219,
1255        .ro = 0xffffffff,
1256    },{ .name = "SEC_DBG_DATA_220",  .addr = A_SEC_DBG_DATA_220,
1257        .ro = 0xffffffff,
1258    },{ .name = "SEC_DBG_DATA_221",  .addr = A_SEC_DBG_DATA_221,
1259        .ro = 0xffffffff,
1260    },{ .name = "SEC_DBG_DATA_222",  .addr = A_SEC_DBG_DATA_222,
1261        .ro = 0xffffffff,
1262    },{ .name = "SEC_DBG_DATA_223",  .addr = A_SEC_DBG_DATA_223,
1263        .ro = 0xffffffff,
1264    },{ .name = "SEC_DBG_DATA_224",  .addr = A_SEC_DBG_DATA_224,
1265        .ro = 0xffffffff,
1266    },{ .name = "SEC_DBG_DATA_225",  .addr = A_SEC_DBG_DATA_225,
1267        .ro = 0xffffffff,
1268    },{ .name = "SEC_DBG_DATA_226",  .addr = A_SEC_DBG_DATA_226,
1269        .ro = 0xffffffff,
1270    },{ .name = "SEC_DBG_DATA_227",  .addr = A_SEC_DBG_DATA_227,
1271        .ro = 0xffffffff,
1272    },{ .name = "SEC_DBG_DATA_228",  .addr = A_SEC_DBG_DATA_228,
1273        .ro = 0xffffffff,
1274    },{ .name = "SEC_DBG_DATA_229",  .addr = A_SEC_DBG_DATA_229,
1275        .ro = 0xffffffff,
1276    },{ .name = "SEC_DBG_DATA_230",  .addr = A_SEC_DBG_DATA_230,
1277        .ro = 0xffffffff,
1278    },{ .name = "SEC_DBG_DATA_231",  .addr = A_SEC_DBG_DATA_231,
1279        .ro = 0xffffffff,
1280    },{ .name = "SEC_DBG_DATA_232",  .addr = A_SEC_DBG_DATA_232,
1281        .ro = 0xffffffff,
1282    },{ .name = "SEC_DBG_DATA_233",  .addr = A_SEC_DBG_DATA_233,
1283        .ro = 0xffffffff,
1284    },{ .name = "SEC_DBG_DATA_234",  .addr = A_SEC_DBG_DATA_234,
1285        .ro = 0xffffffff,
1286    },{ .name = "SEC_DBG_DATA_235",  .addr = A_SEC_DBG_DATA_235,
1287        .ro = 0xffffffff,
1288    },{ .name = "SEC_DBG_DATA_236",  .addr = A_SEC_DBG_DATA_236,
1289        .ro = 0xffffffff,
1290    },{ .name = "SEC_DBG_DATA_237",  .addr = A_SEC_DBG_DATA_237,
1291        .ro = 0xffffffff,
1292    },{ .name = "SEC_DBG_DATA_238",  .addr = A_SEC_DBG_DATA_238,
1293        .ro = 0xffffffff,
1294    },{ .name = "SEC_DBG_DATA_239",  .addr = A_SEC_DBG_DATA_239,
1295        .ro = 0xffffffff,
1296    },{ .name = "SEC_DBG_DATA_240",  .addr = A_SEC_DBG_DATA_240,
1297        .ro = 0xffffffff,
1298    },{ .name = "SEC_DBG_DATA_241",  .addr = A_SEC_DBG_DATA_241,
1299        .ro = 0xffffffff,
1300    },{ .name = "SEC_DBG_DATA_242",  .addr = A_SEC_DBG_DATA_242,
1301        .ro = 0xffffffff,
1302    },{ .name = "SEC_DBG_DATA_243",  .addr = A_SEC_DBG_DATA_243,
1303        .ro = 0xffffffff,
1304    },{ .name = "SEC_DBG_DATA_244",  .addr = A_SEC_DBG_DATA_244,
1305        .ro = 0xffffffff,
1306    },{ .name = "SEC_DBG_DATA_245",  .addr = A_SEC_DBG_DATA_245,
1307        .ro = 0xffffffff,
1308    },{ .name = "SEC_DBG_DATA_246",  .addr = A_SEC_DBG_DATA_246,
1309        .ro = 0xffffffff,
1310    },{ .name = "SEC_DBG_DATA_247",  .addr = A_SEC_DBG_DATA_247,
1311        .ro = 0xffffffff,
1312    },{ .name = "SEC_DBG_DATA_248",  .addr = A_SEC_DBG_DATA_248,
1313        .ro = 0xffffffff,
1314    },{ .name = "SEC_DBG_DATA_249",  .addr = A_SEC_DBG_DATA_249,
1315        .ro = 0xffffffff,
1316    },{ .name = "SEC_DBG_DATA_250",  .addr = A_SEC_DBG_DATA_250,
1317        .ro = 0xffffffff,
1318    },{ .name = "SEC_DBG_DATA_251",  .addr = A_SEC_DBG_DATA_251,
1319        .ro = 0xffffffff,
1320    },{ .name = "SEC_DBG_DATA_252",  .addr = A_SEC_DBG_DATA_252,
1321        .ro = 0xffffffff,
1322    },{ .name = "SEC_DBG_DATA_253",  .addr = A_SEC_DBG_DATA_253,
1323        .ro = 0xffffffff,
1324    },{ .name = "SEC_DBG_DATA_254",  .addr = A_SEC_DBG_DATA_254,
1325        .ro = 0xffffffff,
1326    },{ .name = "SEC_DBG_DATA_255",  .addr = A_SEC_DBG_DATA_255,
1327        .ro = 0xffffffff,
1328    },{ .name = "SEC_DBG_DATA_256",  .addr = A_SEC_DBG_DATA_256,
1329        .ro = 0xffffffff,
1330    },{ .name = "SEC_DBG_DATA_257",  .addr = A_SEC_DBG_DATA_257,
1331        .ro = 0xffffffff,
1332    },{ .name = "SEC_DBG_DATA_258",  .addr = A_SEC_DBG_DATA_258,
1333        .ro = 0xffffffff,
1334    },{ .name = "SEC_DBG_DATA_259",  .addr = A_SEC_DBG_DATA_259,
1335        .ro = 0xffffffff,
1336    },{ .name = "SEC_DBG_DATA_260",  .addr = A_SEC_DBG_DATA_260,
1337        .ro = 0xffffffff,
1338    },{ .name = "SEC_DBG_DATA_261",  .addr = A_SEC_DBG_DATA_261,
1339        .ro = 0xffffffff,
1340    },{ .name = "SEC_DBG_DATA_262",  .addr = A_SEC_DBG_DATA_262,
1341        .ro = 0xffffffff,
1342    },{ .name = "SEC_DBG_DATA_263",  .addr = A_SEC_DBG_DATA_263,
1343        .ro = 0xffffffff,
1344    },{ .name = "SEC_DBG_DATA_264",  .addr = A_SEC_DBG_DATA_264,
1345        .ro = 0xffffffff,
1346    },{ .name = "SEC_DBG_DATA_265",  .addr = A_SEC_DBG_DATA_265,
1347        .ro = 0xffffffff,
1348    },{ .name = "SEC_DBG_DATA_266",  .addr = A_SEC_DBG_DATA_266,
1349        .ro = 0xffffffff,
1350    },{ .name = "SEC_DBG_DATA_267",  .addr = A_SEC_DBG_DATA_267,
1351        .ro = 0xffffffff,
1352    },{ .name = "SEC_DBG_DATA_268",  .addr = A_SEC_DBG_DATA_268,
1353        .ro = 0xffffffff,
1354    },{ .name = "SEC_DBG_DATA_269",  .addr = A_SEC_DBG_DATA_269,
1355        .ro = 0xffffffff,
1356    },{ .name = "SEC_DBG_DATA_270",  .addr = A_SEC_DBG_DATA_270,
1357        .ro = 0xffffffff,
1358    },{ .name = "SEC_DBG_DATA_271",  .addr = A_SEC_DBG_DATA_271,
1359        .ro = 0xffffffff,
1360    },{ .name = "SEC_DBG_DATA_272",  .addr = A_SEC_DBG_DATA_272,
1361        .ro = 0xffffffff,
1362    },{ .name = "SEC_DBG_DATA_273",  .addr = A_SEC_DBG_DATA_273,
1363        .ro = 0xffffffff,
1364    },{ .name = "SEC_DBG_DATA_274",  .addr = A_SEC_DBG_DATA_274,
1365        .ro = 0xffffffff,
1366    },{ .name = "SEC_DBG_DATA_275",  .addr = A_SEC_DBG_DATA_275,
1367        .ro = 0xffffffff,
1368    },{ .name = "SEC_DBG_DATA_276",  .addr = A_SEC_DBG_DATA_276,
1369        .ro = 0xffffffff,
1370    },{ .name = "SEC_DBG_DATA_277",  .addr = A_SEC_DBG_DATA_277,
1371        .ro = 0xffffffff,
1372    },{ .name = "SEC_DBG_DATA_278",  .addr = A_SEC_DBG_DATA_278,
1373        .ro = 0xffffffff,
1374    },{ .name = "SEC_DBG_DATA_279",  .addr = A_SEC_DBG_DATA_279,
1375        .ro = 0xffffffff,
1376    },{ .name = "SEC_DBG_DATA_280",  .addr = A_SEC_DBG_DATA_280,
1377        .ro = 0xffffffff,
1378    },{ .name = "SEC_DBG_DATA_281",  .addr = A_SEC_DBG_DATA_281,
1379        .ro = 0xffffffff,
1380    },{ .name = "SEC_DBG_DATA_282",  .addr = A_SEC_DBG_DATA_282,
1381        .ro = 0xffffffff,
1382    },{ .name = "SEC_DBG_DATA_283",  .addr = A_SEC_DBG_DATA_283,
1383        .ro = 0xffffffff,
1384    },{ .name = "SEC_DBG_DATA_284",  .addr = A_SEC_DBG_DATA_284,
1385        .ro = 0xffffffff,
1386    },{ .name = "SEC_DBG_DATA_285",  .addr = A_SEC_DBG_DATA_285,
1387        .ro = 0xffffffff,
1388    },{ .name = "SEC_DBG_DATA_286",  .addr = A_SEC_DBG_DATA_286,
1389        .ro = 0xffffffff,
1390    },{ .name = "SEC_DBG_DATA_287",  .addr = A_SEC_DBG_DATA_287,
1391        .ro = 0xffffffff,
1392    },{ .name = "SEC_DBG_DATA_288",  .addr = A_SEC_DBG_DATA_288,
1393        .ro = 0xffffffff,
1394    },{ .name = "SEC_DBG_DATA_289",  .addr = A_SEC_DBG_DATA_289,
1395        .ro = 0xffffffff,
1396    },{ .name = "SEC_DBG_DATA_290",  .addr = A_SEC_DBG_DATA_290,
1397        .ro = 0xffffffff,
1398    },{ .name = "SEC_DBG_DATA_291",  .addr = A_SEC_DBG_DATA_291,
1399        .ro = 0xffffffff,
1400    },{ .name = "SEC_DBG_DATA_292",  .addr = A_SEC_DBG_DATA_292,
1401        .ro = 0xffffffff,
1402    },{ .name = "SEC_DBG_DATA_293",  .addr = A_SEC_DBG_DATA_293,
1403        .ro = 0xffffffff,
1404    },{ .name = "SEC_DBG_DATA_294",  .addr = A_SEC_DBG_DATA_294,
1405        .ro = 0xffffffff,
1406    },{ .name = "SEC_DBG_DATA_295",  .addr = A_SEC_DBG_DATA_295,
1407        .ro = 0xffffffff,
1408    },{ .name = "SEC_DBG_DATA_296",  .addr = A_SEC_DBG_DATA_296,
1409        .ro = 0xffffffff,
1410    },{ .name = "SEC_DBG_DATA_297",  .addr = A_SEC_DBG_DATA_297,
1411        .ro = 0xffffffff,
1412    },{ .name = "SEC_DBG_DATA_298",  .addr = A_SEC_DBG_DATA_298,
1413        .ro = 0xffffffff,
1414    },{ .name = "SEC_DBG_DATA_299",  .addr = A_SEC_DBG_DATA_299,
1415        .ro = 0xffffffff,
1416    },{ .name = "SEC_DBG_DATA_300",  .addr = A_SEC_DBG_DATA_300,
1417        .ro = 0xffffffff,
1418    },{ .name = "SEC_DBG_DATA_301",  .addr = A_SEC_DBG_DATA_301,
1419        .ro = 0xffffffff,
1420    },{ .name = "SEC_DBG_DATA_302",  .addr = A_SEC_DBG_DATA_302,
1421        .ro = 0xffffffff,
1422    },{ .name = "SEC_DBG_DATA_303",  .addr = A_SEC_DBG_DATA_303,
1423        .ro = 0xffffffff,
1424    },{ .name = "SEC_DBG_DATA_304",  .addr = A_SEC_DBG_DATA_304,
1425        .ro = 0xffffffff,
1426    },{ .name = "SEC_DBG_DATA_305",  .addr = A_SEC_DBG_DATA_305,
1427        .ro = 0xffffffff,
1428    },{ .name = "SEC_DBG_DATA_306",  .addr = A_SEC_DBG_DATA_306,
1429        .ro = 0xffffffff,
1430    },{ .name = "SEC_DBG_DATA_307",  .addr = A_SEC_DBG_DATA_307,
1431        .ro = 0xffffffff,
1432    },{ .name = "SEC_DBG_DATA_308",  .addr = A_SEC_DBG_DATA_308,
1433        .ro = 0xffffffff,
1434    },{ .name = "SEC_DBG_DATA_309",  .addr = A_SEC_DBG_DATA_309,
1435        .ro = 0xffffffff,
1436    },{ .name = "SEC_DBG_DATA_310",  .addr = A_SEC_DBG_DATA_310,
1437        .ro = 0xffffffff,
1438    },{ .name = "SEC_DBG_DATA_311",  .addr = A_SEC_DBG_DATA_311,
1439        .ro = 0xffffffff,
1440    },{ .name = "SEC_DBG_DATA_312",  .addr = A_SEC_DBG_DATA_312,
1441        .ro = 0xffffffff,
1442    },{ .name = "SEC_DBG_DATA_313",  .addr = A_SEC_DBG_DATA_313,
1443        .ro = 0xffffffff,
1444    },{ .name = "SEC_DBG_DATA_314",  .addr = A_SEC_DBG_DATA_314,
1445        .ro = 0xffffffff,
1446    },{ .name = "SEC_DBG_DATA_315",  .addr = A_SEC_DBG_DATA_315,
1447        .ro = 0xffffffff,
1448    },{ .name = "SEC_DBG_DATA_316",  .addr = A_SEC_DBG_DATA_316,
1449        .ro = 0xffffffff,
1450    },{ .name = "SEC_DBG_DATA_317",  .addr = A_SEC_DBG_DATA_317,
1451        .ro = 0xffffffff,
1452    },{ .name = "SEC_DBG_DATA_318",  .addr = A_SEC_DBG_DATA_318,
1453        .ro = 0xffffffff,
1454    },{ .name = "SEC_DBG_DATA_319",  .addr = A_SEC_DBG_DATA_319,
1455        .ro = 0xffffffff,
1456    },{ .name = "SEC_DBG_DATA_320",  .addr = A_SEC_DBG_DATA_320,
1457        .ro = 0xffffffff,
1458    },{ .name = "SEC_DBG_DATA_321",  .addr = A_SEC_DBG_DATA_321,
1459        .ro = 0xffffffff,
1460    },{ .name = "SEC_DBG_DATA_322",  .addr = A_SEC_DBG_DATA_322,
1461        .ro = 0xffffffff,
1462    },{ .name = "SEC_DBG_DATA_323",  .addr = A_SEC_DBG_DATA_323,
1463        .ro = 0xffffffff,
1464    },{ .name = "SEC_DBG_DATA_324",  .addr = A_SEC_DBG_DATA_324,
1465        .ro = 0xffffffff,
1466    },{ .name = "SEC_DBG_DATA_325",  .addr = A_SEC_DBG_DATA_325,
1467        .ro = 0xffffffff,
1468    },{ .name = "SEC_DBG_DATA_326",  .addr = A_SEC_DBG_DATA_326,
1469        .ro = 0xffffffff,
1470    },{ .name = "SEC_DBG_DATA_327",  .addr = A_SEC_DBG_DATA_327,
1471        .ro = 0xffffffff,
1472    },{ .name = "SEC_DBG_DATA_328",  .addr = A_SEC_DBG_DATA_328,
1473        .ro = 0xffffffff,
1474    },{ .name = "SEC_DBG_DATA_329",  .addr = A_SEC_DBG_DATA_329,
1475        .ro = 0xffffffff,
1476    },{ .name = "SEC_DBG_DATA_330",  .addr = A_SEC_DBG_DATA_330,
1477        .ro = 0xffffffff,
1478    },{ .name = "SEC_DBG_DATA_331",  .addr = A_SEC_DBG_DATA_331,
1479        .ro = 0xffffffff,
1480    },{ .name = "SEC_DBG_DATA_332",  .addr = A_SEC_DBG_DATA_332,
1481        .ro = 0xffffffff,
1482    },{ .name = "SEC_DBG_DATA_333",  .addr = A_SEC_DBG_DATA_333,
1483        .ro = 0xffffffff,
1484    },{ .name = "SEC_DBG_DATA_334",  .addr = A_SEC_DBG_DATA_334,
1485        .ro = 0xffffffff,
1486    },{ .name = "SEC_DBG_DATA_335",  .addr = A_SEC_DBG_DATA_335,
1487        .ro = 0xffffffff,
1488    },{ .name = "SEC_DBG_DATA_336",  .addr = A_SEC_DBG_DATA_336,
1489        .ro = 0xffffffff,
1490    },{ .name = "SEC_DBG_DATA_337",  .addr = A_SEC_DBG_DATA_337,
1491        .ro = 0xffffffff,
1492    },{ .name = "SEC_DBG_DATA_338",  .addr = A_SEC_DBG_DATA_338,
1493        .ro = 0xffffffff,
1494    },{ .name = "SEC_DBG_DATA_339",  .addr = A_SEC_DBG_DATA_339,
1495        .ro = 0xffffffff,
1496    },{ .name = "SEC_DBG_DATA_340",  .addr = A_SEC_DBG_DATA_340,
1497        .ro = 0xffffffff,
1498    },{ .name = "SEC_DBG_DATA_341",  .addr = A_SEC_DBG_DATA_341,
1499        .ro = 0xffffffff,
1500    },{ .name = "SEC_DBG_DATA_342",  .addr = A_SEC_DBG_DATA_342,
1501        .ro = 0xffffffff,
1502    },{ .name = "SEC_DBG_DATA_343",  .addr = A_SEC_DBG_DATA_343,
1503        .ro = 0xffffffff,
1504    },{ .name = "SEC_DBG_DATA_344",  .addr = A_SEC_DBG_DATA_344,
1505        .ro = 0xffffffff,
1506    },{ .name = "SEC_DBG_DATA_345",  .addr = A_SEC_DBG_DATA_345,
1507        .ro = 0xffffffff,
1508    },{ .name = "SEC_DBG_DATA_346",  .addr = A_SEC_DBG_DATA_346,
1509        .ro = 0xffffffff,
1510    },{ .name = "SEC_DBG_DATA_347",  .addr = A_SEC_DBG_DATA_347,
1511        .ro = 0xffffffff,
1512    },{ .name = "SEC_DBG_DATA_348",  .addr = A_SEC_DBG_DATA_348,
1513        .ro = 0xffffffff,
1514    },{ .name = "SEC_DBG_DATA_349",  .addr = A_SEC_DBG_DATA_349,
1515        .ro = 0xffffffff,
1516    },{ .name = "SEC_DBG_DATA_350",  .addr = A_SEC_DBG_DATA_350,
1517        .ro = 0xffffffff,
1518    },{ .name = "SEC_DBG_DATA_351",  .addr = A_SEC_DBG_DATA_351,
1519        .ro = 0xffffffff,
1520    },{ .name = "SEC_DBG_DATA_352",  .addr = A_SEC_DBG_DATA_352,
1521        .ro = 0xffffffff,
1522    },{ .name = "SEC_DBG_DATA_353",  .addr = A_SEC_DBG_DATA_353,
1523        .ro = 0xffffffff,
1524    },{ .name = "SEC_DBG_DATA_354",  .addr = A_SEC_DBG_DATA_354,
1525        .ro = 0xffffffff,
1526    },{ .name = "SEC_DBG_DATA_355",  .addr = A_SEC_DBG_DATA_355,
1527        .ro = 0xffffffff,
1528    },{ .name = "SEC_DBG_DATA_356",  .addr = A_SEC_DBG_DATA_356,
1529        .ro = 0xffffffff,
1530    },{ .name = "SEC_DBG_DATA_357",  .addr = A_SEC_DBG_DATA_357,
1531        .ro = 0xffffffff,
1532    },{ .name = "SEC_DBG_DATA_358",  .addr = A_SEC_DBG_DATA_358,
1533        .ro = 0xffffffff,
1534    },{ .name = "SEC_DBG_DATA_359",  .addr = A_SEC_DBG_DATA_359,
1535        .ro = 0xffffffff,
1536    },{ .name = "SEC_DBG_DATA_360",  .addr = A_SEC_DBG_DATA_360,
1537        .ro = 0xffffffff,
1538    },{ .name = "SEC_DBG_DATA_361",  .addr = A_SEC_DBG_DATA_361,
1539        .ro = 0xffffffff,
1540    },{ .name = "SEC_DBG_DATA_362",  .addr = A_SEC_DBG_DATA_362,
1541        .ro = 0xffffffff,
1542    },{ .name = "SEC_DBG_DATA_363",  .addr = A_SEC_DBG_DATA_363,
1543        .ro = 0xffffffff,
1544    },{ .name = "SEC_DBG_DATA_364",  .addr = A_SEC_DBG_DATA_364,
1545        .ro = 0xffffffff,
1546    },{ .name = "SEC_DBG_DATA_365",  .addr = A_SEC_DBG_DATA_365,
1547        .ro = 0xffffffff,
1548    },{ .name = "SEC_DBG_DATA_366",  .addr = A_SEC_DBG_DATA_366,
1549        .ro = 0xffffffff,
1550    },{ .name = "SEC_DBG_DATA_367",  .addr = A_SEC_DBG_DATA_367,
1551        .ro = 0xffffffff,
1552    },{ .name = "SEC_DBG_DATA_368",  .addr = A_SEC_DBG_DATA_368,
1553        .ro = 0xffffffff,
1554    },{ .name = "SEC_DBG_DATA_369",  .addr = A_SEC_DBG_DATA_369,
1555        .ro = 0xffffffff,
1556    },{ .name = "SEC_DBG_DATA_370",  .addr = A_SEC_DBG_DATA_370,
1557        .ro = 0xffffffff,
1558    },{ .name = "SEC_DBG_DATA_371",  .addr = A_SEC_DBG_DATA_371,
1559        .ro = 0xffffffff,
1560    },{ .name = "SEC_DBG_DATA_372",  .addr = A_SEC_DBG_DATA_372,
1561        .ro = 0xffffffff,
1562    },{ .name = "SEC_DBG_DATA_373",  .addr = A_SEC_DBG_DATA_373,
1563        .ro = 0xffffffff,
1564    },{ .name = "SEC_DBG_DATA_374",  .addr = A_SEC_DBG_DATA_374,
1565        .ro = 0xffffffff,
1566    },{ .name = "SEC_DBG_DATA_375",  .addr = A_SEC_DBG_DATA_375,
1567        .ro = 0xffffffff,
1568    },{ .name = "SEC_DBG_DATA_376",  .addr = A_SEC_DBG_DATA_376,
1569        .ro = 0xffffffff,
1570    },{ .name = "SEC_DBG_DATA_377",  .addr = A_SEC_DBG_DATA_377,
1571        .ro = 0xffffffff,
1572    },{ .name = "SEC_DBG_DATA_378",  .addr = A_SEC_DBG_DATA_378,
1573        .ro = 0xffffffff,
1574    },{ .name = "SEC_DBG_DATA_379",  .addr = A_SEC_DBG_DATA_379,
1575        .ro = 0xffffffff,
1576    },{ .name = "SEC_DBG_DATA_380",  .addr = A_SEC_DBG_DATA_380,
1577        .ro = 0xffffffff,
1578    },{ .name = "SEC_DBG_DATA_381",  .addr = A_SEC_DBG_DATA_381,
1579        .ro = 0xffffffff,
1580    },{ .name = "SEC_DBG_DATA_382",  .addr = A_SEC_DBG_DATA_382,
1581        .ro = 0xffffffff,
1582    },{ .name = "SEC_DBG_DATA_383",  .addr = A_SEC_DBG_DATA_383,
1583        .ro = 0xffffffff,
1584    },{ .name = "SEC_DBG_DATA_384",  .addr = A_SEC_DBG_DATA_384,
1585        .ro = 0xffffffff,
1586    },{ .name = "SEC_DBG_DATA_385",  .addr = A_SEC_DBG_DATA_385,
1587        .ro = 0xffffffff,
1588    },{ .name = "SEC_DBG_DATA_386",  .addr = A_SEC_DBG_DATA_386,
1589        .ro = 0xffffffff,
1590    },{ .name = "SEC_DBG_DATA_387",  .addr = A_SEC_DBG_DATA_387,
1591        .ro = 0xffffffff,
1592    },{ .name = "SEC_DBG_DATA_388",  .addr = A_SEC_DBG_DATA_388,
1593        .ro = 0xffffffff,
1594    },{ .name = "SEC_DBG_DATA_389",  .addr = A_SEC_DBG_DATA_389,
1595        .ro = 0xffffffff,
1596    },{ .name = "SEC_DBG_DATA_390",  .addr = A_SEC_DBG_DATA_390,
1597        .ro = 0xffffffff,
1598    },{ .name = "SEC_DBG_DATA_391",  .addr = A_SEC_DBG_DATA_391,
1599        .ro = 0xffffffff,
1600    },{ .name = "SEC_DBG_DATA_392",  .addr = A_SEC_DBG_DATA_392,
1601        .ro = 0xffffffff,
1602    },{ .name = "SEC_DBG_DATA_393",  .addr = A_SEC_DBG_DATA_393,
1603        .ro = 0xffffffff,
1604    },{ .name = "SEC_DBG_DATA_394",  .addr = A_SEC_DBG_DATA_394,
1605        .ro = 0xffffffff,
1606    },{ .name = "SEC_DBG_DATA_395",  .addr = A_SEC_DBG_DATA_395,
1607        .ro = 0xffffffff,
1608    },{ .name = "SEC_DBG_DATA_396",  .addr = A_SEC_DBG_DATA_396,
1609        .ro = 0xffffffff,
1610    },{ .name = "SEC_DBG_DATA_397",  .addr = A_SEC_DBG_DATA_397,
1611        .ro = 0xffffffff,
1612    },{ .name = "SEC_DBG_DATA_398",  .addr = A_SEC_DBG_DATA_398,
1613        .ro = 0xffffffff,
1614    },{ .name = "SEC_DBG_DATA_399",  .addr = A_SEC_DBG_DATA_399,
1615        .ro = 0xffffffff,
1616    },{ .name = "SEC_DBG_DATA_400",  .addr = A_SEC_DBG_DATA_400,
1617        .ro = 0xffffffff,
1618    },{ .name = "SEC_DBG_DATA_401",  .addr = A_SEC_DBG_DATA_401,
1619        .ro = 0xffffffff,
1620    },{ .name = "SEC_DBG_DATA_402",  .addr = A_SEC_DBG_DATA_402,
1621        .ro = 0xffffffff,
1622    },{ .name = "SEC_DBG_DATA_403",  .addr = A_SEC_DBG_DATA_403,
1623        .ro = 0xffffffff,
1624    },{ .name = "SEC_DBG_DATA_404",  .addr = A_SEC_DBG_DATA_404,
1625        .ro = 0xffffffff,
1626    },{ .name = "SEC_DBG_DATA_405",  .addr = A_SEC_DBG_DATA_405,
1627        .ro = 0xffffffff,
1628    },{ .name = "SEC_DBG_DATA_406",  .addr = A_SEC_DBG_DATA_406,
1629        .ro = 0xffffffff,
1630    },{ .name = "SEC_DBG_DATA_407",  .addr = A_SEC_DBG_DATA_407,
1631        .ro = 0xffffffff,
1632    },{ .name = "SEC_DBG_DATA_408",  .addr = A_SEC_DBG_DATA_408,
1633        .ro = 0xffffffff,
1634    },{ .name = "SEC_DBG_DATA_409",  .addr = A_SEC_DBG_DATA_409,
1635        .ro = 0xffffffff,
1636    },{ .name = "SEC_DBG_DATA_410",  .addr = A_SEC_DBG_DATA_410,
1637        .ro = 0xffffffff,
1638    },{ .name = "SEC_DBG_DATA_411",  .addr = A_SEC_DBG_DATA_411,
1639        .ro = 0xffffffff,
1640    },{ .name = "SEC_DBG_DATA_412",  .addr = A_SEC_DBG_DATA_412,
1641        .ro = 0xffffffff,
1642    },{ .name = "SEC_DBG_DATA_413",  .addr = A_SEC_DBG_DATA_413,
1643        .ro = 0xffffffff,
1644    },{ .name = "SEC_DBG_DATA_414",  .addr = A_SEC_DBG_DATA_414,
1645        .ro = 0xffffffff,
1646    },{ .name = "SEC_DBG_DATA_415",  .addr = A_SEC_DBG_DATA_415,
1647        .ro = 0xffffffff,
1648    },{ .name = "SEC_DBG_DATA_416",  .addr = A_SEC_DBG_DATA_416,
1649        .ro = 0xffffffff,
1650    },{ .name = "SEC_DBG_DATA_417",  .addr = A_SEC_DBG_DATA_417,
1651        .ro = 0xffffffff,
1652    },{ .name = "SEC_DBG_DATA_418",  .addr = A_SEC_DBG_DATA_418,
1653        .ro = 0xffffffff,
1654    },{ .name = "SEC_DBG_DATA_419",  .addr = A_SEC_DBG_DATA_419,
1655        .ro = 0xffffffff,
1656    },{ .name = "SEC_DBG_DATA_420",  .addr = A_SEC_DBG_DATA_420,
1657        .ro = 0xffffffff,
1658    },{ .name = "SEC_DBG_DATA_421",  .addr = A_SEC_DBG_DATA_421,
1659        .ro = 0xffffffff,
1660    },{ .name = "SEC_DBG_DATA_422",  .addr = A_SEC_DBG_DATA_422,
1661        .ro = 0xffffffff,
1662    },{ .name = "SEC_DBG_DATA_423",  .addr = A_SEC_DBG_DATA_423,
1663        .ro = 0xffffffff,
1664    },{ .name = "SEC_DBG_DATA_424",  .addr = A_SEC_DBG_DATA_424,
1665        .ro = 0xffffffff,
1666    },{ .name = "SEC_DBG_DATA_425",  .addr = A_SEC_DBG_DATA_425,
1667        .ro = 0xffffffff,
1668    },{ .name = "SEC_DBG_DATA_426",  .addr = A_SEC_DBG_DATA_426,
1669        .ro = 0xffffffff,
1670    },{ .name = "SEC_DBG_DATA_427",  .addr = A_SEC_DBG_DATA_427,
1671        .ro = 0xffffffff,
1672    },{ .name = "SEC_DBG_DATA_428",  .addr = A_SEC_DBG_DATA_428,
1673        .ro = 0xffffffff,
1674    },{ .name = "SEC_DBG_DATA_429",  .addr = A_SEC_DBG_DATA_429,
1675        .ro = 0xffffffff,
1676    },{ .name = "SEC_DBG_DATA_430",  .addr = A_SEC_DBG_DATA_430,
1677        .ro = 0xffffffff,
1678    },{ .name = "SEC_DBG_DATA_431",  .addr = A_SEC_DBG_DATA_431,
1679        .ro = 0xffffffff,
1680    },{ .name = "SEC_DBG_DATA_432",  .addr = A_SEC_DBG_DATA_432,
1681        .ro = 0xffffffff,
1682    },{ .name = "SEC_DBG_DATA_433",  .addr = A_SEC_DBG_DATA_433,
1683        .ro = 0xffffffff,
1684    },{ .name = "SEC_DBG_DATA_434",  .addr = A_SEC_DBG_DATA_434,
1685        .ro = 0xffffffff,
1686    },{ .name = "SEC_DBG_DATA_435",  .addr = A_SEC_DBG_DATA_435,
1687        .ro = 0xffffffff,
1688    },{ .name = "SEC_DBG_DATA_436",  .addr = A_SEC_DBG_DATA_436,
1689        .ro = 0xffffffff,
1690    },{ .name = "SEC_DBG_DATA_437",  .addr = A_SEC_DBG_DATA_437,
1691        .ro = 0xffffffff,
1692    },{ .name = "SEC_DBG_DATA_438",  .addr = A_SEC_DBG_DATA_438,
1693        .ro = 0xffffffff,
1694    },{ .name = "SEC_DBG_DATA_439",  .addr = A_SEC_DBG_DATA_439,
1695        .ro = 0xffffffff,
1696    },{ .name = "SEC_DBG_DATA_440",  .addr = A_SEC_DBG_DATA_440,
1697        .ro = 0xffffffff,
1698    },{ .name = "SEC_DBG_DATA_441",  .addr = A_SEC_DBG_DATA_441,
1699        .ro = 0xffffffff,
1700    },{ .name = "SEC_DBG_DATA_442",  .addr = A_SEC_DBG_DATA_442,
1701        .ro = 0xffffffff,
1702    },{ .name = "SEC_DBG_DATA_443",  .addr = A_SEC_DBG_DATA_443,
1703        .ro = 0xffffffff,
1704    },{ .name = "SEC_DBG_DATA_444",  .addr = A_SEC_DBG_DATA_444,
1705        .ro = 0xffffffff,
1706    },{ .name = "SEC_DBG_DATA_445",  .addr = A_SEC_DBG_DATA_445,
1707        .ro = 0xffffffff,
1708    },{ .name = "SEC_DBG_DATA_446",  .addr = A_SEC_DBG_DATA_446,
1709        .ro = 0xffffffff,
1710    },{ .name = "SEC_DBG_DATA_447",  .addr = A_SEC_DBG_DATA_447,
1711        .ro = 0xffffffff,
1712    },{ .name = "SEC_DBG_DATA_448",  .addr = A_SEC_DBG_DATA_448,
1713        .ro = 0xffffffff,
1714    },{ .name = "SEC_DBG_DATA_449",  .addr = A_SEC_DBG_DATA_449,
1715        .ro = 0xffffffff,
1716    },{ .name = "SEC_DBG_DATA_450",  .addr = A_SEC_DBG_DATA_450,
1717        .ro = 0xffffffff,
1718    },{ .name = "SEC_DBG_DATA_451",  .addr = A_SEC_DBG_DATA_451,
1719        .ro = 0xffffffff,
1720    },{ .name = "SEC_DBG_DATA_452",  .addr = A_SEC_DBG_DATA_452,
1721        .ro = 0xffffffff,
1722    },{ .name = "SEC_DBG_DATA_453",  .addr = A_SEC_DBG_DATA_453,
1723        .ro = 0xffffffff,
1724    },{ .name = "SEC_DBG_DATA_454",  .addr = A_SEC_DBG_DATA_454,
1725        .ro = 0xffffffff,
1726    },{ .name = "SEC_DBG_DATA_455",  .addr = A_SEC_DBG_DATA_455,
1727        .ro = 0xffffffff,
1728    },{ .name = "SEC_DBG_DATA_456",  .addr = A_SEC_DBG_DATA_456,
1729        .ro = 0xffffffff,
1730    },{ .name = "SEC_DBG_DATA_457",  .addr = A_SEC_DBG_DATA_457,
1731        .ro = 0xffffffff,
1732    },{ .name = "SEC_DBG_DATA_458",  .addr = A_SEC_DBG_DATA_458,
1733        .ro = 0xffffffff,
1734    },{ .name = "SEC_DBG_DATA_459",  .addr = A_SEC_DBG_DATA_459,
1735        .ro = 0xffffffff,
1736    },{ .name = "SEC_DBG_DATA_460",  .addr = A_SEC_DBG_DATA_460,
1737        .ro = 0xffffffff,
1738    },{ .name = "SEC_DBG_DATA_461",  .addr = A_SEC_DBG_DATA_461,
1739        .ro = 0xffffffff,
1740    },{ .name = "SEC_DBG_DATA_462",  .addr = A_SEC_DBG_DATA_462,
1741        .ro = 0xffffffff,
1742    },{ .name = "SEC_DBG_DATA_463",  .addr = A_SEC_DBG_DATA_463,
1743        .ro = 0xffffffff,
1744    },{ .name = "SEC_DBG_DATA_464",  .addr = A_SEC_DBG_DATA_464,
1745        .ro = 0xffffffff,
1746    },{ .name = "SEC_DBG_DATA_465",  .addr = A_SEC_DBG_DATA_465,
1747        .ro = 0xffffffff,
1748    },{ .name = "SEC_DBG_DATA_466",  .addr = A_SEC_DBG_DATA_466,
1749        .ro = 0xffffffff,
1750    },{ .name = "SEC_DBG_DATA_467",  .addr = A_SEC_DBG_DATA_467,
1751        .ro = 0xffffffff,
1752    },{ .name = "SEC_DBG_DATA_468",  .addr = A_SEC_DBG_DATA_468,
1753        .ro = 0xffffffff,
1754    },{ .name = "SEC_DBG_DATA_469",  .addr = A_SEC_DBG_DATA_469,
1755        .ro = 0xffffffff,
1756    },{ .name = "SEC_DBG_DATA_470",  .addr = A_SEC_DBG_DATA_470,
1757        .ro = 0xffffffff,
1758    },{ .name = "SEC_DBG_DATA_471",  .addr = A_SEC_DBG_DATA_471,
1759        .ro = 0xffffffff,
1760    },{ .name = "SEC_DBG_DATA_472",  .addr = A_SEC_DBG_DATA_472,
1761        .ro = 0xffffffff,
1762    },{ .name = "SEC_DBG_DATA_473",  .addr = A_SEC_DBG_DATA_473,
1763        .ro = 0xffffffff,
1764    },{ .name = "SEC_DBG_DATA_474",  .addr = A_SEC_DBG_DATA_474,
1765        .ro = 0xffffffff,
1766    },{ .name = "SEC_DBG_DATA_475",  .addr = A_SEC_DBG_DATA_475,
1767        .ro = 0xffffffff,
1768    },{ .name = "SEC_DBG_DATA_476",  .addr = A_SEC_DBG_DATA_476,
1769        .ro = 0xffffffff,
1770    },{ .name = "SEC_DBG_DATA_477",  .addr = A_SEC_DBG_DATA_477,
1771        .ro = 0xffffffff,
1772    },{ .name = "SEC_DBG_DATA_478",  .addr = A_SEC_DBG_DATA_478,
1773        .ro = 0xffffffff,
1774    },{ .name = "SEC_DBG_DATA_479",  .addr = A_SEC_DBG_DATA_479,
1775        .ro = 0xffffffff,
1776    },{ .name = "SEC_DBG_DATA_480",  .addr = A_SEC_DBG_DATA_480,
1777        .ro = 0xffffffff,
1778    },{ .name = "SEC_DBG_DATA_481",  .addr = A_SEC_DBG_DATA_481,
1779        .ro = 0xffffffff,
1780    },{ .name = "SEC_DBG_DATA_482",  .addr = A_SEC_DBG_DATA_482,
1781        .ro = 0xffffffff,
1782    },{ .name = "SEC_DBG_DATA_483",  .addr = A_SEC_DBG_DATA_483,
1783        .ro = 0xffffffff,
1784    },{ .name = "SEC_DBG_DATA_484",  .addr = A_SEC_DBG_DATA_484,
1785        .ro = 0xffffffff,
1786    },{ .name = "SEC_DBG_DATA_485",  .addr = A_SEC_DBG_DATA_485,
1787        .ro = 0xffffffff,
1788    },{ .name = "SEC_DBG_DATA_486",  .addr = A_SEC_DBG_DATA_486,
1789        .ro = 0xffffffff,
1790    },{ .name = "SEC_DBG_DATA_487",  .addr = A_SEC_DBG_DATA_487,
1791        .ro = 0xffffffff,
1792    },{ .name = "SEC_DBG_DATA_488",  .addr = A_SEC_DBG_DATA_488,
1793        .ro = 0xffffffff,
1794    },{ .name = "SEC_DBG_DATA_489",  .addr = A_SEC_DBG_DATA_489,
1795        .ro = 0xffffffff,
1796    },{ .name = "SEC_DBG_DATA_490",  .addr = A_SEC_DBG_DATA_490,
1797        .ro = 0xffffffff,
1798    },{ .name = "SEC_DBG_DATA_491",  .addr = A_SEC_DBG_DATA_491,
1799        .ro = 0xffffffff,
1800    },{ .name = "SEC_DBG_DATA_492",  .addr = A_SEC_DBG_DATA_492,
1801        .ro = 0xffffffff,
1802    },{ .name = "SEC_DBG_DATA_493",  .addr = A_SEC_DBG_DATA_493,
1803        .ro = 0xffffffff,
1804    },{ .name = "SEC_DBG_DATA_494",  .addr = A_SEC_DBG_DATA_494,
1805        .ro = 0xffffffff,
1806    },{ .name = "SEC_DBG_DATA_495",  .addr = A_SEC_DBG_DATA_495,
1807        .ro = 0xffffffff,
1808    },{ .name = "SEC_DBG_DATA_496",  .addr = A_SEC_DBG_DATA_496,
1809        .ro = 0xffffffff,
1810    },{ .name = "SEC_DBG_DATA_497",  .addr = A_SEC_DBG_DATA_497,
1811        .ro = 0xffffffff,
1812    },{ .name = "SEC_DBG_DATA_498",  .addr = A_SEC_DBG_DATA_498,
1813        .ro = 0xffffffff,
1814    },{ .name = "SEC_DBG_DATA_499",  .addr = A_SEC_DBG_DATA_499,
1815        .ro = 0xffffffff,
1816    },{ .name = "SEC_DBG_DATA_500",  .addr = A_SEC_DBG_DATA_500,
1817        .ro = 0xffffffff,
1818    },{ .name = "SEC_DBG_DATA_501",  .addr = A_SEC_DBG_DATA_501,
1819        .ro = 0xffffffff,
1820    },{ .name = "SEC_DBG_DATA_502",  .addr = A_SEC_DBG_DATA_502,
1821        .ro = 0xffffffff,
1822    },{ .name = "SEC_DBG_DATA_503",  .addr = A_SEC_DBG_DATA_503,
1823        .ro = 0xffffffff,
1824    },{ .name = "SEC_DBG_DATA_504",  .addr = A_SEC_DBG_DATA_504,
1825        .ro = 0xffffffff,
1826    },{ .name = "SEC_DBG_DATA_505",  .addr = A_SEC_DBG_DATA_505,
1827        .ro = 0xffffffff,
1828    },{ .name = "SEC_DBG_DATA_506",  .addr = A_SEC_DBG_DATA_506,
1829        .ro = 0xffffffff,
1830    },{ .name = "SEC_DBG_DATA_507",  .addr = A_SEC_DBG_DATA_507,
1831        .ro = 0xffffffff,
1832    },{ .name = "SEC_DBG_DATA_508",  .addr = A_SEC_DBG_DATA_508,
1833        .ro = 0xffffffff,
1834    },{ .name = "SEC_DBG_DATA_509",  .addr = A_SEC_DBG_DATA_509,
1835        .ro = 0xffffffff,
1836    },{ .name = "SEC_DBG_DATA_510",  .addr = A_SEC_DBG_DATA_510,
1837        .ro = 0xffffffff,
1838    },{ .name = "SEC_DBG_DATA_511",  .addr = A_SEC_DBG_DATA_511,
1839        .ro = 0xffffffff,
1840    }
1841};
1842
1843static void pmc_tap_reset(DeviceState *dev)
1844{
1845    PMC_TAP *s = XILINX_PMC_TAP(dev);
1846    unsigned int i;
1847
1848    for (i = 0; i < ARRAY_SIZE(s->regs_info); ++i) {
1849        register_reset(&s->regs_info[i]);
1850    }
1851
1852    s->regs[R_SLR_TYPE] = s->slr_type;
1853    s->auth_data_load = 0;
1854    s->payload_received = 0;
1855    ARRAY_FIELD_DP32(s->regs, VERSION, PLATFORM, s->platform);
1856    sec_dbg_int_update_irq(s);
1857    pmc_tap_int_update_irq(s);
1858}
1859
1860static int pmc_tap_can_receive(void *opaque)
1861{
1862    PMC_TAP *s = XILINX_PMC_TAP(opaque);
1863
1864    if (s->sec_dbg_dis & SEC_DBG_DIS_MASK) {
1865        qemu_log_mask(LOG_GUEST_ERROR, "Efuse: Secure Debug disabled as "
1866                                      "bits are blown");
1867        qemu_log_flush();
1868        return 0;
1869    } else if ((s->sec_dbg_dis & SEC_LOCK_DBG_DIS_MASK) &
1870               s->first_image_done) {
1871        qemu_log_mask(LOG_GUEST_ERROR, "EFUSE: Secure Debug Lock "
1872                                      "bits are blown, "
1873                                      "Cannot accept 2nd image");
1874        qemu_log_flush();
1875        return 0;
1876    }
1877    return s->auth_data_load ?
1878            MAX_SEC_PAYLOAD - s->payload_received : 0;
1879}
1880
1881static void pmc_tap_receive(void *opaque, const uint8_t *buf, int size)
1882{
1883     PMC_TAP *s = XILINX_PMC_TAP(opaque);
1884
1885     memcpy((uint8_t *)&s->regs[R_SEC_DBG_DATA_0] + s->payload_received,
1886            buf, size);
1887     s->payload_received += size;
1888}
1889
1890static const MemoryRegionOps pmc_tap_ops = {
1891    .read = register_read_memory,
1892    .write = register_write_memory,
1893    .endianness = DEVICE_LITTLE_ENDIAN,
1894    .valid = {
1895        .min_access_size = 4,
1896        .max_access_size = 4,
1897    },
1898};
1899
1900static void pmc_tap_sec_debug_data_load(void *opaque, int n, int level)
1901{
1902    PMC_TAP *s = XILINX_PMC_TAP(opaque);
1903
1904    if (s->auth_data_load) {
1905        if(!level) {
1906            /* Secure payload done */
1907            ARRAY_FIELD_DP32(s->regs, SEC_DBG_INT_STATUS, SEC_DBG, 1);
1908            s->first_image_done = true;
1909            sec_dbg_int_update_irq(s);
1910        }
1911    }
1912    DPRINT("sec-dbg : %s\n", level ? "true": "false");
1913    s->auth_data_load = level;
1914}
1915
1916static void pmc_tap_efuse_sec_dbg_dis(void *opaque, int n, int level)
1917{
1918    PMC_TAP *s = XILINX_PMC_TAP(opaque);
1919
1920    s->sec_dbg_dis = deposit32(s->sec_dbg_dis, n, 1, level);
1921}
1922
1923static void pmc_tap_realize(DeviceState *dev, Error **errp)
1924{
1925    PMC_TAP *s = XILINX_PMC_TAP(dev);
1926    Chardev *chr;
1927
1928    chr = qemu_chr_find("sec-boot");
1929    qdev_prop_set_chr(dev, "chardev", chr);
1930    if (!qemu_chr_fe_get_driver(&s->chr)) {
1931        DPRINT("Seucre Boot interface not connected\n");
1932    } else {
1933        qemu_chr_fe_set_handlers(&s->chr, pmc_tap_can_receive, pmc_tap_receive,
1934                                 NULL, NULL, s, NULL, true);
1935        qemu_chr_fe_accept_input(&s->chr);
1936    }
1937    qdev_init_gpio_in_named(dev, pmc_tap_sec_debug_data_load, "sec-dbg-data", 1);
1938    qdev_init_gpio_in(dev, pmc_tap_efuse_sec_dbg_dis, 4);
1939    qdev_init_gpio_out_named(dev, &s->irq_sec_dbg_int, "sec-dbg-int", 1);
1940    qdev_init_gpio_out_named(dev, &s->irq_pmc_tap_int, "pmc-tap-int", 1);
1941}
1942
1943static void pmc_tap_init(Object *obj)
1944{
1945    PMC_TAP *s = XILINX_PMC_TAP(obj);
1946    SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
1947    RegisterInfoArray *reg_array;
1948
1949    memory_region_init(&s->iomem, obj, TYPE_XILINX_PMC_TAP, R_MAX * 4);
1950    reg_array =
1951        register_init_block32(DEVICE(obj), pmc_tap_regs_info,
1952                              ARRAY_SIZE(pmc_tap_regs_info),
1953                              s->regs_info, s->regs,
1954                              &pmc_tap_ops,
1955                              XILINX_PMC_TAP_ERR_DEBUG,
1956                              R_MAX * 4);
1957    memory_region_add_subregion(&s->iomem,
1958                                0x0,
1959                                &reg_array->mem);
1960    sysbus_init_mmio(sbd, &s->iomem);
1961}
1962
1963static const VMStateDescription vmstate_pmc_tap = {
1964    .name = TYPE_XILINX_PMC_TAP,
1965    .version_id = 1,
1966    .minimum_version_id = 1,
1967    .fields = (VMStateField[]) {
1968        VMSTATE_UINT32_ARRAY(regs, PMC_TAP, R_MAX),
1969        VMSTATE_END_OF_LIST(),
1970    }
1971};
1972
1973static Property pmc_tap_props[] = {
1974        DEFINE_PROP_CHR("chardev", PMC_TAP, chr),
1975        DEFINE_PROP_UINT32("slr-type", PMC_TAP, slr_type,
1976                           PMC_TAP_SLR_TYPE_MONO),
1977        DEFINE_PROP_UINT8("platform", PMC_TAP, platform,
1978                          PLATFORM_VERSION_QEMU),
1979        DEFINE_PROP_END_OF_LIST(),
1980};
1981
1982static void pmc_tap_class_init(ObjectClass *klass, void *data)
1983{
1984    DeviceClass *dc = DEVICE_CLASS(klass);
1985
1986    dc->reset = pmc_tap_reset;
1987    dc->realize = pmc_tap_realize;
1988    dc->vmsd = &vmstate_pmc_tap;
1989    device_class_set_props(dc, pmc_tap_props);
1990}
1991
1992static const TypeInfo pmc_tap_info = {
1993    .name          = TYPE_XILINX_PMC_TAP,
1994    .parent        = TYPE_SYS_BUS_DEVICE,
1995    .instance_size = sizeof(PMC_TAP),
1996    .class_init    = pmc_tap_class_init,
1997    .instance_init = pmc_tap_init,
1998};
1999
2000static void pmc_tap_register_types(void)
2001{
2002    type_register_static(&pmc_tap_info);
2003}
2004
2005type_init(pmc_tap_register_types)
2006