// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2021-2025, NVIDIA CORPORATION. All rights reserved
*
* The driver handles Error's from Control Backbone(CBB) generated due to
* illegal accesses. When an error is reported from a NOC within CBB,
* the driver checks ErrVld status of all three Error Logger's of that NOC.
* It then prints debug information about failed transaction using ErrLog
* registers of error logger which has ErrVld set. Currently, SLV, DEC,
* TMO, SEC, UNS are the codes which are supported by CBB.
*/
#include <linux/clk.h>
#include <linux/cpufeature.h>
#include <linux/debugfs.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <soc/tegra/fuse.h>
#include <soc/tegra/tegra-cbb.h>
#define ERRLOGGER_0_ID_COREID_0 0 x00000000
#define ERRLOGGER_0_ID_REVISIONID_0 0 x00000004
#define ERRLOGGER_0_FAULTEN_0 0 x00000008
#define ERRLOGGER_0_ERRVLD_0 0 x0000000c
#define ERRLOGGER_0_ERRCLR_0 0 x00000010
#define ERRLOGGER_0_ERRLOG0_0 0 x00000014
#define ERRLOGGER_0_ERRLOG1_0 0 x00000018
#define ERRLOGGER_0_RSVD_00_0 0 x0000001c
#define ERRLOGGER_0_ERRLOG3_0 0 x00000020
#define ERRLOGGER_0_ERRLOG4_0 0 x00000024
#define ERRLOGGER_0_ERRLOG5_0 0 x00000028
#define ERRLOGGER_0_STALLEN_0 0 x00000038
#define ERRLOGGER_1_ID_COREID_0 0 x00000080
#define ERRLOGGER_1_ID_REVISIONID_0 0 x00000084
#define ERRLOGGER_1_FAULTEN_0 0 x00000088
#define ERRLOGGER_1_ERRVLD_0 0 x0000008c
#define ERRLOGGER_1_ERRCLR_0 0 x00000090
#define ERRLOGGER_1_ERRLOG0_0 0 x00000094
#define ERRLOGGER_1_ERRLOG1_0 0 x00000098
#define ERRLOGGER_1_RSVD_00_0 0 x0000009c
#define ERRLOGGER_1_ERRLOG3_0 0 x000000a0
#define ERRLOGGER_1_ERRLOG4_0 0 x000000a4
#define ERRLOGGER_1_ERRLOG5_0 0 x000000a8
#define ERRLOGGER_1_STALLEN_0 0 x000000b8
#define ERRLOGGER_2_ID_COREID_0 0 x00000100
#define ERRLOGGER_2_ID_REVISIONID_0 0 x00000104
#define ERRLOGGER_2_FAULTEN_0 0 x00000108
#define ERRLOGGER_2_ERRVLD_0 0 x0000010c
#define ERRLOGGER_2_ERRCLR_0 0 x00000110
#define ERRLOGGER_2_ERRLOG0_0 0 x00000114
#define ERRLOGGER_2_ERRLOG1_0 0 x00000118
#define ERRLOGGER_2_RSVD_00_0 0 x0000011c
#define ERRLOGGER_2_ERRLOG3_0 0 x00000120
#define ERRLOGGER_2_ERRLOG4_0 0 x00000124
#define ERRLOGGER_2_ERRLOG5_0 0 x00000128
#define ERRLOGGER_2_STALLEN_0 0 x00000138
#define CBB_NOC_INITFLOW GENMASK(23 , 20 )
#define CBB_NOC_TARGFLOW GENMASK(19 , 16 )
#define CBB_NOC_TARG_SUBRANGE GENMASK(15 , 9 )
#define CBB_NOC_SEQID GENMASK(8 , 0 )
#define BPMP_NOC_INITFLOW GENMASK(20 , 18 )
#define BPMP_NOC_TARGFLOW GENMASK(17 , 13 )
#define BPMP_NOC_TARG_SUBRANGE GENMASK(12 , 9 )
#define BPMP_NOC_SEQID GENMASK(8 , 0 )
#define AON_NOC_INITFLOW GENMASK(22 , 21 )
#define AON_NOC_TARGFLOW GENMASK(20 , 15 )
#define AON_NOC_TARG_SUBRANGE GENMASK(14 , 9 )
#define AON_NOC_SEQID GENMASK(8 , 0 )
#define SCE_NOC_INITFLOW GENMASK(21 , 19 )
#define SCE_NOC_TARGFLOW GENMASK(18 , 14 )
#define SCE_NOC_TARG_SUBRANGE GENMASK(13 , 9 )
#define SCE_NOC_SEQID GENMASK(8 , 0 )
#define CBB_NOC_AXCACHE GENMASK(3 , 0 )
#define CBB_NOC_NON_MOD GENMASK(4 , 4 )
#define CBB_NOC_AXPROT GENMASK(7 , 5 )
#define CBB_NOC_FALCONSEC GENMASK(9 , 8 )
#define CBB_NOC_GRPSEC GENMASK(16 , 10 )
#define CBB_NOC_VQC GENMASK(18 , 17 )
#define CBB_NOC_MSTR_ID GENMASK(22 , 19 )
#define CBB_NOC_AXI_ID GENMASK(30 , 23 )
#define CLUSTER_NOC_AXCACHE GENMASK(3 , 0 )
#define CLUSTER_NOC_AXPROT GENMASK(6 , 4 )
#define CLUSTER_NOC_FALCONSEC GENMASK(8 , 7 )
#define CLUSTER_NOC_GRPSEC GENMASK(15 , 9 )
#define CLUSTER_NOC_VQC GENMASK(17 , 16 )
#define CLUSTER_NOC_MSTR_ID GENMASK(21 , 18 )
#define CBB_ERR_OPC GENMASK(4 , 1 )
#define CBB_ERR_ERRCODE GENMASK(10 , 8 )
#define CBB_ERR_LEN1 GENMASK(27 , 16 )
#define DMAAPB_X_RAW_INTERRUPT_STATUS 0 x2ec
struct tegra194_cbb_packet_header {
bool lock; // [0]
u8 opc; // [4:1]
u8 errcode; // [10:8]= RD, RDW, RDL, RDX, WR, WRW, WRC, PRE, URG
u16 len1; // [27:16]
bool format; // [31] = 1 -> FlexNoC versions 2.7 & above
};
struct tegra194_cbb_aperture {
u8 initflow;
u8 targflow;
u8 targ_subrange;
u8 init_mapping;
u32 init_localaddress;
u8 targ_mapping;
u32 targ_localaddress;
u16 seqid;
};
struct tegra194_cbb_userbits {
u8 axcache;
u8 non_mod;
u8 axprot;
u8 falconsec;
u8 grpsec;
u8 vqc;
u8 mstr_id;
u8 axi_id;
};
struct tegra194_cbb_noc_data {
const char *name;
bool erd_mask_inband_err;
const char * const *initiator_id;
unsigned int max_aperture;
const struct tegra194_cbb_aperture *noc_aperture;
const char * const *routeid_initflow;
const char * const *routeid_targflow;
void (*parse_routeid)(struct tegra194_cbb_aperture *info, u64 routeid);
void (*parse_userbits)(struct tegra194_cbb_userbits *usrbits, u32 elog_5);
};
struct tegra194_axi2apb_bridge {
struct resource res;
void __iomem *base;
};
struct tegra194_cbb {
struct tegra_cbb base;
const struct tegra194_cbb_noc_data *noc;
struct resource *res;
void __iomem *regs;
unsigned int num_intr;
unsigned int sec_irq;
unsigned int nonsec_irq;
u32 errlog0;
u32 errlog1;
u32 errlog2;
u32 errlog3;
u32 errlog4;
u32 errlog5;
struct tegra194_axi2apb_bridge *bridges;
unsigned int num_bridges;
};
static inline struct tegra194_cbb *to_tegra194_cbb(struct tegra_cbb *cbb)
{
return container_of(cbb, struct tegra194_cbb, base);
}
static LIST_HEAD(cbb_list);
static DEFINE_SPINLOCK(cbb_lock);
static const char * const tegra194_cbb_trantype[] = {
"RD - Read, Incrementing" ,
"RDW - Read, Wrap" , /* Not Supported */
"RDX - Exclusive Read" , /* Not Supported */
"RDL - Linked Read" , /* Not Supported */
"WR - Write, Incrementing" ,
"WRW - Write, Wrap" , /* Not Supported */
"WRC - Exclusive Write" , /* Not Supported */
"PRE - Preamble Sequence for Fixed Accesses"
};
static const char * const tegra194_axi2apb_error[] = {
"SFIFONE - Status FIFO Not Empty interrupt" ,
"SFIFOF - Status FIFO Full interrupt" ,
"TIM - Timer(Timeout) interrupt" ,
"SLV - SLVERR interrupt" ,
"NULL" ,
"ERBF - Early response buffer Full interrupt" ,
"NULL" ,
"RDFIFOF - Read Response FIFO Full interrupt" ,
"WRFIFOF - Write Response FIFO Full interrupt" ,
"CH0DFIFOF - Ch0 Data FIFO Full interrupt" ,
"CH1DFIFOF - Ch1 Data FIFO Full interrupt" ,
"CH2DFIFOF - Ch2 Data FIFO Full interrupt" ,
"UAT - Unsupported alignment type error" ,
"UBS - Unsupported burst size error" ,
"UBE - Unsupported Byte Enable error" ,
"UBT - Unsupported burst type error" ,
"BFS - Block Firewall security error" ,
"ARFS - Address Range Firewall security error" ,
"CH0RFIFOF - Ch0 Request FIFO Full interrupt" ,
"CH1RFIFOF - Ch1 Request FIFO Full interrupt" ,
"CH2RFIFOF - Ch2 Request FIFO Full interrupt"
};
static const char * const tegra194_initiator_id[] = {
[0 x0] = "CCPLEX" ,
[0 x1] = "CCPLEX_DPMU" ,
[0 x2] = "BPMP" ,
[0 x3] = "AON" ,
[0 x4] = "SCE" ,
[0 x5] = "GPCDMA_PERIPHERAL" ,
[0 x6] = "TSECA" ,
[0 x7] = "TSECB" ,
[0 x8] = "JTAGM_DFT" ,
[0 x9] = "CORESIGHT_AXIAP" ,
[0 xa] = "APE" ,
[0 xb] = "PEATR" ,
[0 xc] = "NVDEC" ,
[0 xd] = "RCE" ,
[0 xe] = "NVDEC1"
};
static const struct tegra_cbb_error tegra194_cbb_errors[] = {
{
.code = "SLV" ,
.source = "Target" ,
.desc = "Target error detected by CBB target"
}, {
.code = "DEC" ,
.source = "Initiator NIU" ,
.desc = "Address decode error"
}, {
.code = "UNS" ,
.source = "Target NIU" ,
.desc = "Unsupported request. Not a valid transaction"
}, {
.code = "DISC" , /* Not Supported by CBB */
.source = "Power Disconnect" ,
.desc = "Disconnected target or domain"
}, {
.code = "SEC" ,
.source = "Initiator NIU or Firewall" ,
.desc = "Security violation. Firewall error"
}, {
.code = "HIDE" , /* Not Supported by CBB */
.source = "Firewall" ,
.desc = "Hidden security violation, reported as OK to initiator"
}, {
.code = "TMO" ,
.source = "Target NIU" ,
.desc = "Target time-out error"
}, {
.code = "RSV" ,
.source = "None" ,
.desc = "Reserved"
}
};
/*
* CBB NOC aperture lookup table as per file "cbb_central_noc_Structure.info".
*/
static const char * const tegra194_cbbcentralnoc_routeid_initflow[] = {
[0 x0] = "aon_p2ps/I/aon" ,
[0 x1] = "ape_p2ps/I/ape_p2ps" ,
[0 x2] = "bpmp_p2ps/I/bpmp_p2ps" ,
[0 x3] = "ccroc_p2ps/I/ccroc_p2ps" ,
[0 x4] = "csite_p2ps/I/0" ,
[0 x5] = "gpcdma_mmio_p2ps/I/0" ,
[0 x6] = "jtag_p2ps/I/0" ,
[0 x7] = "nvdec1_p2ps/I/0" ,
[0 x8] = "nvdec_p2ps/I/0" ,
[0 x9] = "rce_p2ps/I/rce_p2ps" ,
[0 xa] = "sce_p2ps/I/sce_p2ps" ,
[0 xb] = "tseca_p2ps/I/0" ,
[0 xc] = "tsecb_p2ps/I/0" ,
[0 xd] = "RESERVED" ,
[0 xe] = "RESERVED" ,
[0 xf] = "RESERVED"
};
static const char * const tegra194_cbbcentralnoc_routeid_targflow[] = {
[0 x0] = "SVC/T/intreg" ,
[0 x1] = "axis_satellite_axi2apb_p2pm/T/axis_satellite_axi2apb_p2pm" ,
[0 x2] = "axis_satellite_grout/T/axis_satellite_grout" ,
[0 x3] = "cbb_firewall/T/cbb_firewall" ,
[0 x4] = "gpu_p2pm/T/gpu_p2pm" ,
[0 x5] = "host1x_p2pm/T/host1x_p2pm" ,
[0 x6] = "sapb_3_p2pm/T/sapb_3_p2pm" ,
[0 x7] = "smmu0_p2pm/T/smmu0_p2pm" ,
[0 x8] = "smmu1_p2pm/T/smmu1_p2pm" ,
[0 x9] = "smmu2_p2pm/T/smmu2_p2pm" ,
[0 xa] = "stm_p2pm/T/stm_p2pm" ,
[0 xb] = "RESERVED" ,
[0 xc] = "RESERVED" ,
[0 xd] = "RESERVED" ,
[0 xe] = "RESERVED" ,
[0 xf] = "RESERVED"
};
/*
* Fields of CBB NOC lookup table:
* Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
* Targ mapping, Targ localAddress
* ----------------------------------------------------------------------------
*/
static const struct tegra194_cbb_aperture tegra194_cbbcentralnoc_apert_lookup[] = {
{ 0 x0, 0 x0, 0 x00, 0 x0, 0 x02300000, 0 , 0 x00000000 },
{ 0 x0, 0 x1, 0 x00, 0 x0, 0 x02003000, 0 , 0 x02003000 },
{ 0 x0, 0 x1, 0 x01, 0 x0, 0 x02006000, 2 , 0 x02006000 },
{ 0 x0, 0 x1, 0 x02, 0 x0, 0 x02016000, 3 , 0 x02016000 },
{ 0 x0, 0 x1, 0 x03, 0 x0, 0 x0201d000, 4 , 0 x0201d000 },
{ 0 x0, 0 x1, 0 x04, 0 x0, 0 x0202b000, 6 , 0 x0202b000 },
{ 0 x0, 0 x1, 0 x05, 0 x0, 0 x02434000, 20 , 0 x02434000 },
{ 0 x0, 0 x1, 0 x06, 0 x0, 0 x02436000, 21 , 0 x02436000 },
{ 0 x0, 0 x1, 0 x07, 0 x0, 0 x02438000, 22 , 0 x02438000 },
{ 0 x0, 0 x1, 0 x08, 0 x0, 0 x02445000, 24 , 0 x02445000 },
{ 0 x0, 0 x1, 0 x09, 0 x0, 0 x02446000, 25 , 0 x02446000 },
{ 0 x0, 0 x1, 0 x0a, 0 x0, 0 x02004000, 1 , 0 x02004000 },
{ 0 x0, 0 x1, 0 x0b, 0 x0, 0 x0201e000, 5 , 0 x0201e000 },
{ 0 x0, 0 x1, 0 x0c, 0 x0, 0 x0202c000, 7 , 0 x0202c000 },
{ 0 x0, 0 x1, 0 x0d, 0 x0, 0 x02204000, 8 , 0 x02204000 },
{ 0 x0, 0 x1, 0 x0e, 0 x0, 0 x02214000, 9 , 0 x02214000 },
{ 0 x0, 0 x1, 0 x0f, 0 x0, 0 x02224000, 10 , 0 x02224000 },
{ 0 x0, 0 x1, 0 x10, 0 x0, 0 x02234000, 11 , 0 x02234000 },
{ 0 x0, 0 x1, 0 x11, 0 x0, 0 x02244000, 12 , 0 x02244000 },
{ 0 x0, 0 x1, 0 x12, 0 x0, 0 x02254000, 13 , 0 x02254000 },
{ 0 x0, 0 x1, 0 x13, 0 x0, 0 x02264000, 14 , 0 x02264000 },
{ 0 x0, 0 x1, 0 x14, 0 x0, 0 x02274000, 15 , 0 x02274000 },
{ 0 x0, 0 x1, 0 x15, 0 x0, 0 x02284000, 16 , 0 x02284000 },
{ 0 x0, 0 x1, 0 x16, 0 x0, 0 x0243a000, 23 , 0 x0243a000 },
{ 0 x0, 0 x1, 0 x17, 0 x0, 0 x02370000, 17 , 0 x02370000 },
{ 0 x0, 0 x1, 0 x18, 0 x0, 0 x023d0000, 18 , 0 x023d0000 },
{ 0 x0, 0 x1, 0 x19, 0 x0, 0 x023e0000, 19 , 0 x023e0000 },
{ 0 x0, 0 x1, 0 x1a, 0 x0, 0 x02450000, 26 , 0 x02450000 },
{ 0 x0, 0 x1, 0 x1b, 0 x0, 0 x02460000, 27 , 0 x02460000 },
{ 0 x0, 0 x1, 0 x1c, 0 x0, 0 x02490000, 28 , 0 x02490000 },
{ 0 x0, 0 x1, 0 x1d, 0 x0, 0 x03130000, 31 , 0 x03130000 },
{ 0 x0, 0 x1, 0 x1e, 0 x0, 0 x03160000, 32 , 0 x03160000 },
{ 0 x0, 0 x1, 0 x1f, 0 x0, 0 x03270000, 33 , 0 x03270000 },
{ 0 x0, 0 x1, 0 x20, 0 x0, 0 x032e0000, 35 , 0 x032e0000 },
{ 0 x0, 0 x1, 0 x21, 0 x0, 0 x03300000, 36 , 0 x03300000 },
{ 0 x0, 0 x1, 0 x22, 0 x0, 0 x13090000, 40 , 0 x13090000 },
{ 0 x0, 0 x1, 0 x23, 0 x0, 0 x20120000, 43 , 0 x20120000 },
{ 0 x0, 0 x1, 0 x24, 0 x0, 0 x20170000, 44 , 0 x20170000 },
{ 0 x0, 0 x1, 0 x25, 0 x0, 0 x20190000, 45 , 0 x20190000 },
{ 0 x0, 0 x1, 0 x26, 0 x0, 0 x201b0000, 46 , 0 x201b0000 },
{ 0 x0, 0 x1, 0 x27, 0 x0, 0 x20250000, 47 , 0 x20250000 },
{ 0 x0, 0 x1, 0 x28, 0 x0, 0 x20260000, 48 , 0 x20260000 },
{ 0 x0, 0 x1, 0 x29, 0 x0, 0 x20420000, 49 , 0 x20420000 },
{ 0 x0, 0 x1, 0 x2a, 0 x0, 0 x20460000, 50 , 0 x20460000 },
{ 0 x0, 0 x1, 0 x2b, 0 x0, 0 x204f0000, 51 , 0 x204f0000 },
{ 0 x0, 0 x1, 0 x2c, 0 x0, 0 x20520000, 52 , 0 x20520000 },
{ 0 x0, 0 x1, 0 x2d, 0 x0, 0 x20580000, 53 , 0 x20580000 },
{ 0 x0, 0 x1, 0 x2e, 0 x0, 0 x205a0000, 54 , 0 x205a0000 },
{ 0 x0, 0 x1, 0 x2f, 0 x0, 0 x205c0000, 55 , 0 x205c0000 },
{ 0 x0, 0 x1, 0 x30, 0 x0, 0 x20690000, 56 , 0 x20690000 },
{ 0 x0, 0 x1, 0 x31, 0 x0, 0 x20770000, 57 , 0 x20770000 },
{ 0 x0, 0 x1, 0 x32, 0 x0, 0 x20790000, 58 , 0 x20790000 },
{ 0 x0, 0 x1, 0 x33, 0 x0, 0 x20880000, 59 , 0 x20880000 },
{ 0 x0, 0 x1, 0 x34, 0 x0, 0 x20990000, 62 , 0 x20990000 },
{ 0 x0, 0 x1, 0 x35, 0 x0, 0 x20e10000, 65 , 0 x20e10000 },
{ 0 x0, 0 x1, 0 x36, 0 x0, 0 x20e70000, 66 , 0 x20e70000 },
{ 0 x0, 0 x1, 0 x37, 0 x0, 0 x20e80000, 67 , 0 x20e80000 },
{ 0 x0, 0 x1, 0 x38, 0 x0, 0 x20f30000, 68 , 0 x20f30000 },
{ 0 x0, 0 x1, 0 x39, 0 x0, 0 x20f50000, 69 , 0 x20f50000 },
{ 0 x0, 0 x1, 0 x3a, 0 x0, 0 x20fc0000, 70 , 0 x20fc0000 },
{ 0 x0, 0 x1, 0 x3b, 0 x0, 0 x21110000, 72 , 0 x21110000 },
{ 0 x0, 0 x1, 0 x3c, 0 x0, 0 x21270000, 73 , 0 x21270000 },
{ 0 x0, 0 x1, 0 x3d, 0 x0, 0 x21290000, 74 , 0 x21290000 },
{ 0 x0, 0 x1, 0 x3e, 0 x0, 0 x21840000, 75 , 0 x21840000 },
{ 0 x0, 0 x1, 0 x3f, 0 x0, 0 x21880000, 76 , 0 x21880000 },
{ 0 x0, 0 x1, 0 x40, 0 x0, 0 x218d0000, 77 , 0 x218d0000 },
{ 0 x0, 0 x1, 0 x41, 0 x0, 0 x21950000, 78 , 0 x21950000 },
{ 0 x0, 0 x1, 0 x42, 0 x0, 0 x21960000, 79 , 0 x21960000 },
{ 0 x0, 0 x1, 0 x43, 0 x0, 0 x21a10000, 80 , 0 x21a10000 },
{ 0 x0, 0 x1, 0 x44, 0 x0, 0 x024a0000, 29 , 0 x024a0000 },
{ 0 x0, 0 x1, 0 x45, 0 x0, 0 x024c0000, 30 , 0 x024c0000 },
{ 0 x0, 0 x1, 0 x46, 0 x0, 0 x032c0000, 34 , 0 x032c0000 },
{ 0 x0, 0 x1, 0 x47, 0 x0, 0 x03400000, 37 , 0 x03400000 },
{ 0 x0, 0 x1, 0 x48, 0 x0, 0 x130a0000, 41 , 0 x130a0000 },
{ 0 x0, 0 x1, 0 x49, 0 x0, 0 x130c0000, 42 , 0 x130c0000 },
{ 0 x0, 0 x1, 0 x4a, 0 x0, 0 x208a0000, 60 , 0 x208a0000 },
{ 0 x0, 0 x1, 0 x4b, 0 x0, 0 x208c0000, 61 , 0 x208c0000 },
{ 0 x0, 0 x1, 0 x4c, 0 x0, 0 x209a0000, 63 , 0 x209a0000 },
{ 0 x0, 0 x1, 0 x4d, 0 x0, 0 x21a40000, 81 , 0 x21a40000 },
{ 0 x0, 0 x1, 0 x4e, 0 x0, 0 x03440000, 38 , 0 x03440000 },
{ 0 x0, 0 x1, 0 x4f, 0 x0, 0 x20d00000, 64 , 0 x20d00000 },
{ 0 x0, 0 x1, 0 x50, 0 x0, 0 x21000000, 71 , 0 x21000000 },
{ 0 x0, 0 x1, 0 x51, 0 x0, 0 x0b000000, 39 , 0 x0b000000 },
{ 0 x0, 0 x2, 0 x00, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x0, 0 x3, 0 x00, 0 x0, 0 x02340000, 0 , 0 x00000000 },
{ 0 x0, 0 x4, 0 x00, 0 x0, 0 x17000000, 0 , 0 x17000000 },
{ 0 x0, 0 x4, 0 x01, 0 x0, 0 x18000000, 1 , 0 x18000000 },
{ 0 x0, 0 x5, 0 x00, 0 x0, 0 x13e80000, 1 , 0 x13e80000 },
{ 0 x0, 0 x5, 0 x01, 0 x0, 0 x15810000, 12 , 0 x15810000 },
{ 0 x0, 0 x5, 0 x02, 0 x0, 0 x15840000, 14 , 0 x15840000 },
{ 0 x0, 0 x5, 0 x03, 0 x0, 0 x15a40000, 17 , 0 x15a40000 },
{ 0 x0, 0 x5, 0 x04, 0 x0, 0 x13f00000, 3 , 0 x13f00000 },
{ 0 x0, 0 x5, 0 x05, 0 x0, 0 x15820000, 13 , 0 x15820000 },
{ 0 x0, 0 x5, 0 x06, 0 x0, 0 x13ec0000, 2 , 0 x13ec0000 },
{ 0 x0, 0 x5, 0 x07, 0 x0, 0 x15200000, 6 , 0 x15200000 },
{ 0 x0, 0 x5, 0 x08, 0 x0, 0 x15340000, 7 , 0 x15340000 },
{ 0 x0, 0 x5, 0 x09, 0 x0, 0 x15380000, 8 , 0 x15380000 },
{ 0 x0, 0 x5, 0 x0a, 0 x0, 0 x15500000, 10 , 0 x15500000 },
{ 0 x0, 0 x5, 0 x0b, 0 x0, 0 x155c0000, 11 , 0 x155c0000 },
{ 0 x0, 0 x5, 0 x0c, 0 x0, 0 x15a00000, 16 , 0 x15a00000 },
{ 0 x0, 0 x5, 0 x0d, 0 x0, 0 x13e00000, 0 , 0 x13e00000 },
{ 0 x0, 0 x5, 0 x0e, 0 x0, 0 x15100000, 5 , 0 x15100000 },
{ 0 x0, 0 x5, 0 x0f, 0 x0, 0 x15480000, 9 , 0 x15480000 },
{ 0 x0, 0 x5, 0 x10, 0 x0, 0 x15880000, 15 , 0 x15880000 },
{ 0 x0, 0 x5, 0 x11, 0 x0, 0 x15a80000, 18 , 0 x15a80000 },
{ 0 x0, 0 x5, 0 x12, 0 x0, 0 x15b00000, 19 , 0 x15b00000 },
{ 0 x0, 0 x5, 0 x13, 0 x0, 0 x14800000, 4 , 0 x14800000 },
{ 0 x0, 0 x5, 0 x14, 0 x0, 0 x15c00000, 20 , 0 x15c00000 },
{ 0 x0, 0 x5, 0 x15, 0 x0, 0 x16000000, 21 , 0 x16000000 },
{ 0 x0, 0 x6, 0 x00, 0 x0, 0 x02000000, 4 , 0 x02000000 },
{ 0 x0, 0 x6, 0 x01, 0 x0, 0 x02007000, 5 , 0 x02007000 },
{ 0 x0, 0 x6, 0 x02, 0 x0, 0 x02008000, 6 , 0 x02008000 },
{ 0 x0, 0 x6, 0 x03, 0 x0, 0 x02013000, 7 , 0 x02013000 },
{ 0 x0, 0 x6, 0 x04, 0 x0, 0 x0201c000, 8 , 0 x0201c000 },
{ 0 x0, 0 x6, 0 x05, 0 x0, 0 x02020000, 9 , 0 x02020000 },
{ 0 x0, 0 x6, 0 x06, 0 x0, 0 x0202a000, 10 , 0 x0202a000 },
{ 0 x0, 0 x6, 0 x07, 0 x0, 0 x0202e000, 11 , 0 x0202e000 },
{ 0 x0, 0 x6, 0 x08, 0 x0, 0 x06400000, 33 , 0 x06400000 },
{ 0 x0, 0 x6, 0 x09, 0 x0, 0 x02038000, 12 , 0 x02038000 },
{ 0 x0, 0 x6, 0 x0a, 0 x0, 0 x00100000, 0 , 0 x00100000 },
{ 0 x0, 0 x6, 0 x0b, 0 x0, 0 x023b0000, 13 , 0 x023b0000 },
{ 0 x0, 0 x6, 0 x0c, 0 x0, 0 x02800000, 16 , 0 x02800000 },
{ 0 x0, 0 x6, 0 x0d, 0 x0, 0 x030e0000, 22 , 0 x030e0000 },
{ 0 x0, 0 x6, 0 x0e, 0 x0, 0 x03800000, 23 , 0 x03800000 },
{ 0 x0, 0 x6, 0 x0f, 0 x0, 0 x03980000, 25 , 0 x03980000 },
{ 0 x0, 0 x6, 0 x10, 0 x0, 0 x03a60000, 26 , 0 x03a60000 },
{ 0 x0, 0 x6, 0 x11, 0 x0, 0 x03d80000, 31 , 0 x03d80000 },
{ 0 x0, 0 x6, 0 x12, 0 x0, 0 x20000000, 36 , 0 x20000000 },
{ 0 x0, 0 x6, 0 x13, 0 x0, 0 x20050000, 38 , 0 x20050000 },
{ 0 x0, 0 x6, 0 x14, 0 x0, 0 x201e0000, 40 , 0 x201e0000 },
{ 0 x0, 0 x6, 0 x15, 0 x0, 0 x20280000, 42 , 0 x20280000 },
{ 0 x0, 0 x6, 0 x16, 0 x0, 0 x202c0000, 43 , 0 x202c0000 },
{ 0 x0, 0 x6, 0 x17, 0 x0, 0 x20390000, 44 , 0 x20390000 },
{ 0 x0, 0 x6, 0 x18, 0 x0, 0 x20430000, 45 , 0 x20430000 },
{ 0 x0, 0 x6, 0 x19, 0 x0, 0 x20440000, 46 , 0 x20440000 },
{ 0 x0, 0 x6, 0 x1a, 0 x0, 0 x204e0000, 47 , 0 x204e0000 },
{ 0 x0, 0 x6, 0 x1b, 0 x0, 0 x20550000, 48 , 0 x20550000 },
{ 0 x0, 0 x6, 0 x1c, 0 x0, 0 x20570000, 49 , 0 x20570000 },
{ 0 x0, 0 x6, 0 x1d, 0 x0, 0 x20590000, 50 , 0 x20590000 },
{ 0 x0, 0 x6, 0 x1e, 0 x0, 0 x20730000, 52 , 0 x20730000 },
{ 0 x0, 0 x6, 0 x1f, 0 x0, 0 x209f0000, 54 , 0 x209f0000 },
{ 0 x0, 0 x6, 0 x20, 0 x0, 0 x20e20000, 55 , 0 x20e20000 },
{ 0 x0, 0 x6, 0 x21, 0 x0, 0 x20ed0000, 56 , 0 x20ed0000 },
{ 0 x0, 0 x6, 0 x22, 0 x0, 0 x20fd0000, 57 , 0 x20fd0000 },
{ 0 x0, 0 x6, 0 x23, 0 x0, 0 x21120000, 59 , 0 x21120000 },
{ 0 x0, 0 x6, 0 x24, 0 x0, 0 x211a0000, 60 , 0 x211a0000 },
{ 0 x0, 0 x6, 0 x25, 0 x0, 0 x21850000, 61 , 0 x21850000 },
{ 0 x0, 0 x6, 0 x26, 0 x0, 0 x21860000, 62 , 0 x21860000 },
{ 0 x0, 0 x6, 0 x27, 0 x0, 0 x21890000, 63 , 0 x21890000 },
{ 0 x0, 0 x6, 0 x28, 0 x0, 0 x21970000, 64 , 0 x21970000 },
{ 0 x0, 0 x6, 0 x29, 0 x0, 0 x21990000, 65 , 0 x21990000 },
{ 0 x0, 0 x6, 0 x2a, 0 x0, 0 x21a00000, 66 , 0 x21a00000 },
{ 0 x0, 0 x6, 0 x2b, 0 x0, 0 x21a90000, 68 , 0 x21a90000 },
{ 0 x0, 0 x6, 0 x2c, 0 x0, 0 x21ac0000, 70 , 0 x21ac0000 },
{ 0 x0, 0 x6, 0 x2d, 0 x0, 0 x01f80000, 3 , 0 x01f80000 },
{ 0 x0, 0 x6, 0 x2e, 0 x0, 0 x024e0000, 14 , 0 x024e0000 },
{ 0 x0, 0 x6, 0 x2f, 0 x0, 0 x030c0000, 21 , 0 x030c0000 },
{ 0 x0, 0 x6, 0 x30, 0 x0, 0 x03820000, 24 , 0 x03820000 },
{ 0 x0, 0 x6, 0 x31, 0 x0, 0 x03aa0000, 27 , 0 x03aa0000 },
{ 0 x0, 0 x6, 0 x32, 0 x0, 0 x03c80000, 29 , 0 x03c80000 },
{ 0 x0, 0 x6, 0 x33, 0 x0, 0 x130e0000, 34 , 0 x130e0000 },
{ 0 x0, 0 x6, 0 x34, 0 x0, 0 x20020000, 37 , 0 x20020000 },
{ 0 x0, 0 x6, 0 x35, 0 x0, 0 x20060000, 39 , 0 x20060000 },
{ 0 x0, 0 x6, 0 x36, 0 x0, 0 x20200000, 41 , 0 x20200000 },
{ 0 x0, 0 x6, 0 x37, 0 x0, 0 x206a0000, 51 , 0 x206a0000 },
{ 0 x0, 0 x6, 0 x38, 0 x0, 0 x20740000, 53 , 0 x20740000 },
{ 0 x0, 0 x6, 0 x39, 0 x0, 0 x20fe0000, 58 , 0 x20fe0000 },
{ 0 x0, 0 x6, 0 x3a, 0 x0, 0 x21a20000, 67 , 0 x21a20000 },
{ 0 x0, 0 x6, 0 x3b, 0 x0, 0 x21aa0000, 69 , 0 x21aa0000 },
{ 0 x0, 0 x6, 0 x3c, 0 x0, 0 x02b80000, 17 , 0 x02b80000 },
{ 0 x0, 0 x6, 0 x3d, 0 x0, 0 x03080000, 20 , 0 x03080000 },
{ 0 x0, 0 x6, 0 x3e, 0 x0, 0 x13100000, 35 , 0 x13100000 },
{ 0 x0, 0 x6, 0 x3f, 0 x0, 0 x01f00000, 2 , 0 x01f00000 },
{ 0 x0, 0 x6, 0 x40, 0 x0, 0 x03000000, 19 , 0 x03000000 },
{ 0 x0, 0 x6, 0 x41, 0 x0, 0 x03c00000, 28 , 0 x03c00000 },
{ 0 x0, 0 x6, 0 x42, 0 x0, 0 x03d00000, 30 , 0 x03d00000 },
{ 0 x0, 0 x6, 0 x43, 0 x0, 0 x01700000, 1 , 0 x01700000 },
{ 0 x0, 0 x6, 0 x44, 0 x0, 0 x02c00000, 18 , 0 x02c00000 },
{ 0 x0, 0 x6, 0 x45, 0 x0, 0 x02600000, 15 , 0 x02600000 },
{ 0 x0, 0 x6, 0 x46, 0 x0, 0 x06000000, 32 , 0 x06000000 },
{ 0 x0, 0 x6, 0 x47, 0 x0, 0 x24000000, 71 , 0 x24000000 },
{ 0 x0, 0 x7, 0 x00, 0 x0, 0 x12000000, 0 , 0 x12000000 },
{ 0 x0, 0 x8, 0 x00, 0 x0, 0 x11000000, 0 , 0 x11000000 },
{ 0 x0, 0 x9, 0 x00, 0 x0, 0 x10000000, 0 , 0 x10000000 },
{ 0 x0, 0 xa, 0 x00, 0 x0, 0 x22000000, 0 , 0 x22000000 }
};
/*
* BPMP NOC aperture lookup table as per file "BPMP_NOC_Structure.info".
*/
static const char * const tegra194_bpmpnoc_routeid_initflow[] = {
[0 x0] = "cbb_i/I/0" ,
[0 x1] = "cpu_m_i/I/0" ,
[0 x2] = "cpu_p_i/I/0" ,
[0 x3] = "cvc_i/I/0" ,
[0 x4] = "dma_m_i/I/0" ,
[0 x5] = "dma_p_i/I/0" ,
[0 x6] = "RESERVED" ,
[0 x7] = "RESERVED"
};
static const char * const tegra194_bpmpnoc_routeid_targflow[] = {
[0 x00] = "multiport0_t/T/actmon" ,
[0 x01] = "multiport0_t/T/ast_0" ,
[0 x02] = "multiport0_t/T/ast_1" ,
[0 x03] = "multiport0_t/T/atcm_cfg" ,
[0 x04] = "multiport0_t/T/car" ,
[0 x05] = "multiport0_t/T/central_pwr_mgr" ,
[0 x06] = "multiport0_t/T/central_vtg_ctlr" ,
[0 x07] = "multiport0_t/T/cfg" ,
[0 x08] = "multiport0_t/T/dma" ,
[0 x09] = "multiport0_t/T/err_collator" ,
[0 x0a] = "multiport0_t/T/err_collator_car" ,
[0 x0b] = "multiport0_t/T/fpga_misc" ,
[0 x0c] = "multiport0_t/T/fpga_uart" ,
[0 x0d] = "multiport0_t/T/gte" ,
[0 x0e] = "multiport0_t/T/hsp" ,
[0 x0f] = "multiport0_t/T/misc" ,
[0 x10] = "multiport0_t/T/pm" ,
[0 x11] = "multiport0_t/T/simon0" ,
[0 x12] = "multiport0_t/T/simon1" ,
[0 x13] = "multiport0_t/T/simon2" ,
[0 x14] = "multiport0_t/T/simon3" ,
[0 x15] = "multiport0_t/T/simon4" ,
[0 x16] = "multiport0_t/T/soc_therm" ,
[0 x17] = "multiport0_t/T/tke" ,
[0 x18] = "multiport0_t/T/vic_0" ,
[0 x19] = "multiport0_t/T/vic_1" ,
[0 x1a] = "ast0_t/T/0" ,
[0 x1b] = "ast1_t/T/0" ,
[0 x1c] = "bpmp_noc_firewall/T/0" ,
[0 x1d] = "cbb_t/T/0" ,
[0 x1e] = "cpu_t/T/0" ,
[0 x1f] = "svc_t/T/0"
};
/*
* Fields of BPMP NOC lookup table:
* Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
* Targ mapping, Targ localAddress
* ----------------------------------------------------------------------------
*/
static const struct tegra194_cbb_aperture tegra194_bpmpnoc_apert_lookup[] = {
{ 0 x0, 0 x1c, 0 x0, 0 x0, 0 x0d640000, 0 , 0 x00000000 },
{ 0 x0, 0 x1e, 0 x0, 0 x0, 0 x0d400000, 0 , 0 x0d400000 },
{ 0 x0, 0 x00, 0 x0, 0 x0, 0 x0d230000, 0 , 0 x00000000 },
{ 0 x0, 0 x01, 0 x0, 0 x0, 0 x0d040000, 0 , 0 x00000000 },
{ 0 x0, 0 x02, 0 x0, 0 x0, 0 x0d050000, 0 , 0 x00000000 },
{ 0 x0, 0 x03, 0 x0, 0 x0, 0 x0d000000, 0 , 0 x00000000 },
{ 0 x0, 0 x04, 0 x0, 0 x0, 0 x20ae0000, 3 , 0 x000e0000 },
{ 0 x0, 0 x04, 0 x1, 0 x0, 0 x20ac0000, 2 , 0 x000c0000 },
{ 0 x0, 0 x04, 0 x2, 0 x0, 0 x20a80000, 1 , 0 x00080000 },
{ 0 x0, 0 x04, 0 x3, 0 x0, 0 x20a00000, 0 , 0 x00000000 },
{ 0 x0, 0 x05, 0 x0, 0 x0, 0 x0d2a0000, 0 , 0 x00000000 },
{ 0 x0, 0 x06, 0 x0, 0 x0, 0 x0d290000, 0 , 0 x00000000 },
{ 0 x0, 0 x07, 0 x0, 0 x0, 0 x0d2c0000, 0 , 0 x00000000 },
{ 0 x0, 0 x08, 0 x0, 0 x0, 0 x0d0e0000, 4 , 0 x00080000 },
{ 0 x0, 0 x08, 0 x1, 0 x0, 0 x0d060000, 0 , 0 x00000000 },
{ 0 x0, 0 x08, 0 x2, 0 x0, 0 x0d080000, 1 , 0 x00020000 },
{ 0 x0, 0 x08, 0 x3, 0 x0, 0 x0d0a0000, 2 , 0 x00040000 },
{ 0 x0, 0 x08, 0 x4, 0 x0, 0 x0d0c0000, 3 , 0 x00060000 },
{ 0 x0, 0 x09, 0 x0, 0 x0, 0 x0d650000, 0 , 0 x00000000 },
{ 0 x0, 0 x0a, 0 x0, 0 x0, 0 x20af0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0b, 0 x0, 0 x0, 0 x0d3e0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0c, 0 x0, 0 x0, 0 x0d3d0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0d, 0 x0, 0 x0, 0 x0d1e0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0e, 0 x0, 0 x0, 0 x0d150000, 0 , 0 x00000000 },
{ 0 x0, 0 x0e, 0 x1, 0 x0, 0 x0d160000, 1 , 0 x00010000 },
{ 0 x0, 0 x0e, 0 x2, 0 x0, 0 x0d170000, 2 , 0 x00020000 },
{ 0 x0, 0 x0e, 0 x3, 0 x0, 0 x0d180000, 3 , 0 x00030000 },
{ 0 x0, 0 x0e, 0 x4, 0 x0, 0 x0d190000, 4 , 0 x00040000 },
{ 0 x0, 0 x0e, 0 x5, 0 x0, 0 x0d1a0000, 5 , 0 x00050000 },
{ 0 x0, 0 x0e, 0 x6, 0 x0, 0 x0d1b0000, 6 , 0 x00060000 },
{ 0 x0, 0 x0e, 0 x7, 0 x0, 0 x0d1c0000, 7 , 0 x00070000 },
{ 0 x0, 0 x0e, 0 x8, 0 x0, 0 x0d1d0000, 8 , 0 x00080000 },
{ 0 x0, 0 x0f, 0 x0, 0 x0, 0 x0d660000, 0 , 0 x00000000 },
{ 0 x0, 0 x10, 0 x0, 0 x0, 0 x0d1f0000, 0 , 0 x00000000 },
{ 0 x0, 0 x10, 0 x1, 0 x0, 0 x0d200000, 1 , 0 x00010000 },
{ 0 x0, 0 x10, 0 x2, 0 x0, 0 x0d210000, 2 , 0 x00020000 },
{ 0 x0, 0 x10, 0 x3, 0 x0, 0 x0d220000, 3 , 0 x00030000 },
{ 0 x0, 0 x11, 0 x0, 0 x0, 0 x0d240000, 0 , 0 x00000000 },
{ 0 x0, 0 x12, 0 x0, 0 x0, 0 x0d250000, 0 , 0 x00000000 },
{ 0 x0, 0 x13, 0 x0, 0 x0, 0 x0d260000, 0 , 0 x00000000 },
{ 0 x0, 0 x14, 0 x0, 0 x0, 0 x0d270000, 0 , 0 x00000000 },
{ 0 x0, 0 x15, 0 x0, 0 x0, 0 x0d2b0000, 0 , 0 x00000000 },
{ 0 x0, 0 x16, 0 x0, 0 x0, 0 x0d280000, 0 , 0 x00000000 },
{ 0 x0, 0 x17, 0 x0, 0 x0, 0 x0d0f0000, 0 , 0 x00000000 },
{ 0 x0, 0 x17, 0 x1, 0 x0, 0 x0d100000, 1 , 0 x00010000 },
{ 0 x0, 0 x17, 0 x2, 0 x0, 0 x0d110000, 2 , 0 x00020000 },
{ 0 x0, 0 x17, 0 x3, 0 x0, 0 x0d120000, 3 , 0 x00030000 },
{ 0 x0, 0 x17, 0 x4, 0 x0, 0 x0d130000, 4 , 0 x00040000 },
{ 0 x0, 0 x17, 0 x5, 0 x0, 0 x0d140000, 5 , 0 x00050000 },
{ 0 x0, 0 x18, 0 x0, 0 x0, 0 x0d020000, 0 , 0 x00000000 },
{ 0 x0, 0 x19, 0 x0, 0 x0, 0 x0d030000, 0 , 0 x00000000 },
{ 0 x0, 0 x1f, 0 x0, 0 x0, 0 x0d600000, 0 , 0 x00000000 },
{ 0 x0, 0 x1f, 0 x1, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x1, 0 x1a, 0 x0, 0 x0, 0 x40000000, 0 , 0 x40000000 },
{ 0 x1, 0 x1a, 0 x1, 0 x1, 0 x80000000, 1 , 0 x80000000 },
{ 0 x1, 0 x1a, 0 x2, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x2, 0 x1c, 0 x0, 0 x0, 0 x0d640000, 0 , 0 x00000000 },
{ 0 x2, 0 x1d, 0 x0, 0 x0, 0 x20b00000, 8 , 0 x20b00000 },
{ 0 x2, 0 x1d, 0 x1, 0 x0, 0 x20800000, 7 , 0 x20800000 },
{ 0 x2, 0 x1d, 0 x2, 0 x0, 0 x20c00000, 9 , 0 x20c00000 },
{ 0 x2, 0 x1d, 0 x3, 0 x0, 0 x0d800000, 3 , 0 x0d800000 },
{ 0 x2, 0 x1d, 0 x4, 0 x0, 0 x20000000, 6 , 0 x20000000 },
{ 0 x2, 0 x1d, 0 x5, 0 x0, 0 x0c000000, 2 , 0 x0c000000 },
{ 0 x2, 0 x1d, 0 x6, 0 x0, 0 x21000000, 10 , 0 x21000000 },
{ 0 x2, 0 x1d, 0 x7, 0 x0, 0 x0e000000, 4 , 0 x0e000000 },
{ 0 x2, 0 x1d, 0 x8, 0 x0, 0 x22000000, 11 , 0 x22000000 },
{ 0 x2, 0 x1d, 0 x9, 0 x0, 0 x08000000, 1 , 0 x08000000 },
{ 0 x2, 0 x1d, 0 xa, 0 x0, 0 x24000000, 12 , 0 x24000000 },
{ 0 x2, 0 x1d, 0 xb, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x2, 0 x1d, 0 xc, 0 x0, 0 x28000000, 13 , 0 x28000000 },
{ 0 x2, 0 x1d, 0 xd, 0 x0, 0 x10000000, 5 , 0 x10000000 },
{ 0 x2, 0 x1d, 0 xe, 0 x0, 0 x30000000, 14 , 0 x30000000 },
{ 0 x2, 0 x00, 0 x0, 0 x0, 0 x0d230000, 0 , 0 x00000000 },
{ 0 x2, 0 x01, 0 x0, 0 x0, 0 x0d040000, 0 , 0 x00000000 },
{ 0 x2, 0 x02, 0 x0, 0 x0, 0 x0d050000, 0 , 0 x00000000 },
{ 0 x2, 0 x03, 0 x0, 0 x0, 0 x0d000000, 0 , 0 x00000000 },
{ 0 x2, 0 x04, 0 x0, 0 x0, 0 x20ae0000, 3 , 0 x000e0000 },
{ 0 x2, 0 x04, 0 x1, 0 x0, 0 x20ac0000, 2 , 0 x000c0000 },
{ 0 x2, 0 x04, 0 x2, 0 x0, 0 x20a80000, 1 , 0 x00080000 },
{ 0 x2, 0 x04, 0 x3, 0 x0, 0 x20a00000, 0 , 0 x00000000 },
{ 0 x2, 0 x05, 0 x0, 0 x0, 0 x0d2a0000, 0 , 0 x00000000 },
{ 0 x2, 0 x06, 0 x0, 0 x0, 0 x0d290000, 0 , 0 x00000000 },
{ 0 x2, 0 x07, 0 x0, 0 x0, 0 x0d2c0000, 0 , 0 x00000000 },
{ 0 x2, 0 x08, 0 x0, 0 x0, 0 x0d0e0000, 4 , 0 x00080000 },
{ 0 x2, 0 x08, 0 x1, 0 x0, 0 x0d060000, 0 , 0 x00000000 },
{ 0 x2, 0 x08, 0 x2, 0 x0, 0 x0d080000, 1 , 0 x00020000 },
{ 0 x2, 0 x08, 0 x3, 0 x0, 0 x0d0a0000, 2 , 0 x00040000 },
{ 0 x2, 0 x08, 0 x4, 0 x0, 0 x0d0c0000, 3 , 0 x00060000 },
{ 0 x2, 0 x09, 0 x0, 0 x0, 0 x0d650000, 0 , 0 x00000000 },
{ 0 x2, 0 x0a, 0 x0, 0 x0, 0 x20af0000, 0 , 0 x00000000 },
{ 0 x2, 0 x0b, 0 x0, 0 x0, 0 x0d3e0000, 0 , 0 x00000000 },
{ 0 x2, 0 x0c, 0 x0, 0 x0, 0 x0d3d0000, 0 , 0 x00000000 },
{ 0 x2, 0 x0d, 0 x0, 0 x0, 0 x0d1e0000, 0 , 0 x00000000 },
{ 0 x2, 0 x0e, 0 x0, 0 x0, 0 x0d150000, 0 , 0 x00000000 },
{ 0 x2, 0 x0e, 0 x1, 0 x0, 0 x0d160000, 1 , 0 x00010000 },
{ 0 x2, 0 x0e, 0 x2, 0 x0, 0 x0d170000, 2 , 0 x00020000 },
{ 0 x2, 0 x0e, 0 x3, 0 x0, 0 x0d180000, 3 , 0 x00030000 },
{ 0 x2, 0 x0e, 0 x4, 0 x0, 0 x0d190000, 4 , 0 x00040000 },
{ 0 x2, 0 x0e, 0 x5, 0 x0, 0 x0d1a0000, 5 , 0 x00050000 },
{ 0 x2, 0 x0e, 0 x6, 0 x0, 0 x0d1b0000, 6 , 0 x00060000 },
{ 0 x2, 0 x0e, 0 x7, 0 x0, 0 x0d1c0000, 7 , 0 x00070000 },
{ 0 x2, 0 x0e, 0 x8, 0 x0, 0 x0d1d0000, 8 , 0 x00080000 },
{ 0 x2, 0 x0f, 0 x0, 0 x0, 0 x0d660000, 0 , 0 x00000000 },
{ 0 x2, 0 x10, 0 x0, 0 x0, 0 x0d1f0000, 0 , 0 x00000000 },
{ 0 x2, 0 x10, 0 x1, 0 x0, 0 x0d200000, 1 , 0 x00010000 },
{ 0 x2, 0 x10, 0 x2, 0 x0, 0 x0d210000, 2 , 0 x00020000 },
{ 0 x2, 0 x10, 0 x3, 0 x0, 0 x0d220000, 3 , 0 x00030000 },
{ 0 x2, 0 x11, 0 x0, 0 x0, 0 x0d240000, 0 , 0 x00000000 },
{ 0 x2, 0 x12, 0 x0, 0 x0, 0 x0d250000, 0 , 0 x00000000 },
{ 0 x2, 0 x13, 0 x0, 0 x0, 0 x0d260000, 0 , 0 x00000000 },
{ 0 x2, 0 x14, 0 x0, 0 x0, 0 x0d270000, 0 , 0 x00000000 },
{ 0 x2, 0 x15, 0 x0, 0 x0, 0 x0d2b0000, 0 , 0 x00000000 },
{ 0 x2, 0 x16, 0 x0, 0 x0, 0 x0d280000, 0 , 0 x00000000 },
{ 0 x2, 0 x17, 0 x0, 0 x0, 0 x0d0f0000, 0 , 0 x00000000 },
{ 0 x2, 0 x17, 0 x1, 0 x0, 0 x0d100000, 1 , 0 x00010000 },
{ 0 x2, 0 x17, 0 x2, 0 x0, 0 x0d110000, 2 , 0 x00020000 },
{ 0 x2, 0 x17, 0 x3, 0 x0, 0 x0d120000, 3 , 0 x00030000 },
{ 0 x2, 0 x17, 0 x4, 0 x0, 0 x0d130000, 4 , 0 x00040000 },
{ 0 x2, 0 x17, 0 x5, 0 x0, 0 x0d140000, 5 , 0 x00050000 },
{ 0 x2, 0 x18, 0 x0, 0 x0, 0 x0d020000, 0 , 0 x00000000 },
{ 0 x2, 0 x19, 0 x0, 0 x0, 0 x0d030000, 0 , 0 x00000000 },
{ 0 x2, 0 x1f, 0 x0, 0 x0, 0 x0d600000, 0 , 0 x00000000 },
{ 0 x2, 0 x1f, 0 x1, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x1b, 0 x0, 0 x0, 0 x40000000, 0 , 0 x40000000 },
{ 0 x3, 0 x1b, 0 x1, 0 x1, 0 x80000000, 1 , 0 x80000000 },
{ 0 x3, 0 x1c, 0 x0, 0 x2, 0 x0d640000, 0 , 0 x00000000 },
{ 0 x3, 0 x1d, 0 x0, 0 x2, 0 x20b00000, 8 , 0 x20b00000 },
{ 0 x3, 0 x1d, 0 x1, 0 x2, 0 x20800000, 7 , 0 x20800000 },
{ 0 x3, 0 x1d, 0 x2, 0 x2, 0 x20c00000, 9 , 0 x20c00000 },
{ 0 x3, 0 x1d, 0 x3, 0 x2, 0 x0d800000, 3 , 0 x0d800000 },
{ 0 x3, 0 x1d, 0 x4, 0 x2, 0 x20000000, 6 , 0 x20000000 },
{ 0 x3, 0 x1d, 0 x5, 0 x2, 0 x0c000000, 2 , 0 x0c000000 },
{ 0 x3, 0 x1d, 0 x6, 0 x2, 0 x21000000, 10 , 0 x21000000 },
{ 0 x3, 0 x1d, 0 x7, 0 x2, 0 x0e000000, 4 , 0 x0e000000 },
{ 0 x3, 0 x1d, 0 x8, 0 x2, 0 x22000000, 11 , 0 x22000000 },
{ 0 x3, 0 x1d, 0 x9, 0 x2, 0 x08000000, 1 , 0 x08000000 },
{ 0 x3, 0 x1d, 0 xa, 0 x2, 0 x24000000, 12 , 0 x24000000 },
{ 0 x3, 0 x1d, 0 xb, 0 x2, 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x1d, 0 xc, 0 x2, 0 x28000000, 13 , 0 x28000000 },
{ 0 x3, 0 x1d, 0 xd, 0 x2, 0 x10000000, 5 , 0 x10000000 },
{ 0 x3, 0 x1d, 0 xe, 0 x2, 0 x30000000, 14 , 0 x30000000 },
{ 0 x3, 0 x1e, 0 x0, 0 x2, 0 x0d400000, 0 , 0 x0d400000 },
{ 0 x3, 0 x00, 0 x0, 0 x2, 0 x0d230000, 0 , 0 x00000000 },
{ 0 x3, 0 x01, 0 x0, 0 x2, 0 x0d040000, 0 , 0 x00000000 },
{ 0 x3, 0 x02, 0 x0, 0 x2, 0 x0d050000, 0 , 0 x00000000 },
{ 0 x3, 0 x03, 0 x0, 0 x2, 0 x0d000000, 0 , 0 x00000000 },
{ 0 x3, 0 x04, 0 x0, 0 x2, 0 x20ae0000, 3 , 0 x000e0000 },
{ 0 x3, 0 x04, 0 x1, 0 x2, 0 x20ac0000, 2 , 0 x000c0000 },
{ 0 x3, 0 x04, 0 x2, 0 x2, 0 x20a80000, 1 , 0 x00080000 },
{ 0 x3, 0 x04, 0 x3, 0 x2, 0 x20a00000, 0 , 0 x00000000 },
{ 0 x3, 0 x05, 0 x0, 0 x2, 0 x0d2a0000, 0 , 0 x00000000 },
{ 0 x3, 0 x06, 0 x0, 0 x2, 0 x0d290000, 0 , 0 x00000000 },
{ 0 x3, 0 x07, 0 x0, 0 x2, 0 x0d2c0000, 0 , 0 x00000000 },
{ 0 x3, 0 x08, 0 x0, 0 x2, 0 x0d0e0000, 4 , 0 x00080000 },
{ 0 x3, 0 x08, 0 x1, 0 x2, 0 x0d060000, 0 , 0 x00000000 },
{ 0 x3, 0 x08, 0 x2, 0 x2, 0 x0d080000, 1 , 0 x00020000 },
{ 0 x3, 0 x08, 0 x3, 0 x2, 0 x0d0a0000, 2 , 0 x00040000 },
{ 0 x3, 0 x08, 0 x4, 0 x2, 0 x0d0c0000, 3 , 0 x00060000 },
{ 0 x3, 0 x09, 0 x0, 0 x2, 0 x0d650000, 0 , 0 x00000000 },
{ 0 x3, 0 x0a, 0 x0, 0 x2, 0 x20af0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0b, 0 x0, 0 x2, 0 x0d3e0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0c, 0 x0, 0 x2, 0 x0d3d0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0d, 0 x0, 0 x2, 0 x0d1e0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0e, 0 x0, 0 x2, 0 x0d150000, 0 , 0 x00000000 },
{ 0 x3, 0 x0e, 0 x1, 0 x2, 0 x0d160000, 1 , 0 x00010000 },
{ 0 x3, 0 x0e, 0 x2, 0 x2, 0 x0d170000, 2 , 0 x00020000 },
{ 0 x3, 0 x0e, 0 x3, 0 x2, 0 x0d180000, 3 , 0 x00030000 },
{ 0 x3, 0 x0e, 0 x4, 0 x2, 0 x0d190000, 4 , 0 x00040000 },
{ 0 x3, 0 x0e, 0 x5, 0 x2, 0 x0d1a0000, 5 , 0 x00050000 },
{ 0 x3, 0 x0e, 0 x6, 0 x2, 0 x0d1b0000, 6 , 0 x00060000 },
{ 0 x3, 0 x0e, 0 x7, 0 x2, 0 x0d1c0000, 7 , 0 x00070000 },
{ 0 x3, 0 x0e, 0 x8, 0 x2, 0 x0d1d0000, 8 , 0 x00080000 },
{ 0 x3, 0 x0f, 0 x0, 0 x2, 0 x0d660000, 0 , 0 x00000000 },
{ 0 x3, 0 x10, 0 x0, 0 x2, 0 x0d1f0000, 0 , 0 x00000000 },
{ 0 x3, 0 x10, 0 x1, 0 x2, 0 x0d200000, 1 , 0 x00010000 },
{ 0 x3, 0 x10, 0 x2, 0 x2, 0 x0d210000, 2 , 0 x00020000 },
{ 0 x3, 0 x10, 0 x3, 0 x2, 0 x0d220000, 3 , 0 x00030000 },
{ 0 x3, 0 x11, 0 x0, 0 x2, 0 x0d240000, 0 , 0 x00000000 },
{ 0 x3, 0 x12, 0 x0, 0 x2, 0 x0d250000, 0 , 0 x00000000 },
{ 0 x3, 0 x13, 0 x0, 0 x2, 0 x0d260000, 0 , 0 x00000000 },
{ 0 x3, 0 x14, 0 x0, 0 x2, 0 x0d270000, 0 , 0 x00000000 },
{ 0 x3, 0 x15, 0 x0, 0 x2, 0 x0d2b0000, 0 , 0 x00000000 },
{ 0 x3, 0 x16, 0 x0, 0 x2, 0 x0d280000, 0 , 0 x00000000 },
{ 0 x3, 0 x17, 0 x0, 0 x2, 0 x0d0f0000, 0 , 0 x00000000 },
{ 0 x3, 0 x17, 0 x1, 0 x2, 0 x0d100000, 1 , 0 x00010000 },
{ 0 x3, 0 x17, 0 x2, 0 x2, 0 x0d110000, 2 , 0 x00020000 },
{ 0 x3, 0 x17, 0 x3, 0 x2, 0 x0d120000, 3 , 0 x00030000 },
{ 0 x3, 0 x17, 0 x4, 0 x2, 0 x0d130000, 4 , 0 x00040000 },
{ 0 x3, 0 x17, 0 x5, 0 x2, 0 x0d140000, 5 , 0 x00050000 },
{ 0 x3, 0 x18, 0 x0, 0 x2, 0 x0d020000, 0 , 0 x00000000 },
{ 0 x3, 0 x19, 0 x0, 0 x2, 0 x0d030000, 0 , 0 x00000000 },
{ 0 x3, 0 x1f, 0 x0, 0 x2, 0 x0d600000, 0 , 0 x00000000 },
{ 0 x3, 0 x1f, 0 x1, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x4, 0 x1b, 0 x0, 0 x0, 0 x40000000, 0 , 0 x40000000 },
{ 0 x4, 0 x1b, 0 x1, 0 x1, 0 x80000000, 1 , 0 x80000000 },
{ 0 x4, 0 x1e, 0 x0, 0 x2, 0 x0d400000, 0 , 0 x0d400000 },
{ 0 x4, 0 x1e, 0 x1, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x5, 0 x1c, 0 x0, 0 x0, 0 x0d640000, 0 , 0 x00000000 },
{ 0 x5, 0 x1d, 0 x0, 0 x0, 0 x20b00000, 8 , 0 x20b00000 },
{ 0 x5, 0 x1d, 0 x1, 0 x0, 0 x20800000, 7 , 0 x20800000 },
{ 0 x5, 0 x1d, 0 x2, 0 x0, 0 x20c00000, 9 , 0 x20c00000 },
{ 0 x5, 0 x1d, 0 x3, 0 x0, 0 x0d800000, 3 , 0 x0d800000 },
{ 0 x5, 0 x1d, 0 x4, 0 x0, 0 x20000000, 6 , 0 x20000000 },
{ 0 x5, 0 x1d, 0 x5, 0 x0, 0 x0c000000, 2 , 0 x0c000000 },
{ 0 x5, 0 x1d, 0 x6, 0 x0, 0 x21000000, 10 , 0 x21000000 },
{ 0 x5, 0 x1d, 0 x7, 0 x0, 0 x0e000000, 4 , 0 x0e000000 },
{ 0 x5, 0 x1d, 0 x8, 0 x0, 0 x22000000, 11 , 0 x22000000 },
{ 0 x5, 0 x1d, 0 x9, 0 x0, 0 x08000000, 1 , 0 x08000000 },
{ 0 x5, 0 x1d, 0 xa, 0 x0, 0 x24000000, 12 , 0 x24000000 },
{ 0 x5, 0 x1d, 0 xb, 0 x0, 0 x00000000, 0 , 0 x00000000 },
{ 0 x5, 0 x1d, 0 xc, 0 x0, 0 x28000000, 13 , 0 x28000000 },
{ 0 x5, 0 x1d, 0 xd, 0 x0, 0 x10000000, 5 , 0 x10000000 },
{ 0 x5, 0 x1d, 0 xe, 0 x0, 0 x30000000, 14 , 0 x30000000 },
{ 0 x5, 0 x00, 0 x0, 0 x0, 0 x0d230000, 0 , 0 x00000000 },
{ 0 x5, 0 x01, 0 x0, 0 x0, 0 x0d040000, 0 , 0 x00000000 },
{ 0 x5, 0 x02, 0 x0, 0 x0, 0 x0d050000, 0 , 0 x00000000 },
{ 0 x5, 0 x03, 0 x0, 0 x0, 0 x0d000000, 0 , 0 x00000000 },
{ 0 x5, 0 x04, 0 x0, 0 x0, 0 x20ae0000, 3 , 0 x000e0000 },
{ 0 x5, 0 x04, 0 x1, 0 x0, 0 x20ac0000, 2 , 0 x000c0000 },
{ 0 x5, 0 x04, 0 x2, 0 x0, 0 x20a80000, 1 , 0 x00080000 },
{ 0 x5, 0 x04, 0 x3, 0 x0, 0 x20a00000, 0 , 0 x00000000 },
{ 0 x5, 0 x05, 0 x0, 0 x0, 0 x0d2a0000, 0 , 0 x00000000 },
{ 0 x5, 0 x06, 0 x0, 0 x0, 0 x0d290000, 0 , 0 x00000000 },
{ 0 x5, 0 x07, 0 x0, 0 x0, 0 x0d2c0000, 0 , 0 x00000000 },
{ 0 x5, 0 x08, 0 x0, 0 x0, 0 x0d0e0000, 4 , 0 x00080000 },
{ 0 x5, 0 x08, 0 x1, 0 x0, 0 x0d060000, 0 , 0 x00000000 },
{ 0 x5, 0 x08, 0 x2, 0 x0, 0 x0d080000, 1 , 0 x00020000 },
{ 0 x5, 0 x08, 0 x3, 0 x0, 0 x0d0a0000, 2 , 0 x00040000 },
{ 0 x5, 0 x08, 0 x4, 0 x0, 0 x0d0c0000, 3 , 0 x00060000 },
{ 0 x5, 0 x09, 0 x0, 0 x0, 0 x0d650000, 0 , 0 x00000000 },
{ 0 x5, 0 x0a, 0 x0, 0 x0, 0 x20af0000, 0 , 0 x00000000 },
{ 0 x5, 0 x0b, 0 x0, 0 x0, 0 x0d3e0000, 0 , 0 x00000000 },
{ 0 x5, 0 x0c, 0 x0, 0 x0, 0 x0d3d0000, 0 , 0 x00000000 },
{ 0 x5, 0 x0d, 0 x0, 0 x0, 0 x0d1e0000, 0 , 0 x00000000 },
{ 0 x5, 0 x0e, 0 x0, 0 x0, 0 x0d150000, 0 , 0 x00000000 },
{ 0 x5, 0 x0e, 0 x1, 0 x0, 0 x0d160000, 1 , 0 x00010000 },
{ 0 x5, 0 x0e, 0 x2, 0 x0, 0 x0d170000, 2 , 0 x00020000 },
{ 0 x5, 0 x0e, 0 x3, 0 x0, 0 x0d180000, 3 , 0 x00030000 },
{ 0 x5, 0 x0e, 0 x4, 0 x0, 0 x0d190000, 4 , 0 x00040000 },
{ 0 x5, 0 x0e, 0 x5, 0 x0, 0 x0d1a0000, 5 , 0 x00050000 },
{ 0 x5, 0 x0e, 0 x6, 0 x0, 0 x0d1b0000, 6 , 0 x00060000 },
{ 0 x5, 0 x0e, 0 x7, 0 x0, 0 x0d1c0000, 7 , 0 x00070000 },
{ 0 x5, 0 x0e, 0 x8, 0 x0, 0 x0d1d0000, 8 , 0 x00080000 },
{ 0 x5, 0 x0f, 0 x0, 0 x0, 0 x0d660000, 0 , 0 x00000000 },
{ 0 x5, 0 x10, 0 x0, 0 x0, 0 x0d1f0000, 0 , 0 x00000000 },
{ 0 x5, 0 x10, 0 x1, 0 x0, 0 x0d200000, 1 , 0 x00010000 },
{ 0 x5, 0 x10, 0 x2, 0 x0, 0 x0d210000, 2 , 0 x00020000 },
{ 0 x5, 0 x10, 0 x3, 0 x0, 0 x0d220000, 3 , 0 x00030000 },
{ 0 x5, 0 x11, 0 x0, 0 x0, 0 x0d240000, 0 , 0 x00000000 },
{ 0 x5, 0 x12, 0 x0, 0 x0, 0 x0d250000, 0 , 0 x00000000 },
{ 0 x5, 0 x13, 0 x0, 0 x0, 0 x0d260000, 0 , 0 x00000000 },
{ 0 x5, 0 x14, 0 x0, 0 x0, 0 x0d270000, 0 , 0 x00000000 },
{ 0 x5, 0 x15, 0 x0, 0 x0, 0 x0d2b0000, 0 , 0 x00000000 },
{ 0 x5, 0 x16, 0 x0, 0 x0, 0 x0d280000, 0 , 0 x00000000 },
{ 0 x5, 0 x17, 0 x0, 0 x0, 0 x0d0f0000, 0 , 0 x00000000 },
{ 0 x5, 0 x17, 0 x1, 0 x0, 0 x0d100000, 1 , 0 x00010000 },
{ 0 x5, 0 x17, 0 x2, 0 x0, 0 x0d110000, 2 , 0 x00020000 },
{ 0 x5, 0 x17, 0 x3, 0 x0, 0 x0d120000, 3 , 0 x00030000 },
{ 0 x5, 0 x17, 0 x4, 0 x0, 0 x0d130000, 4 , 0 x00040000 },
{ 0 x5, 0 x17, 0 x5, 0 x0, 0 x0d140000, 5 , 0 x00050000 },
{ 0 x5, 0 x18, 0 x0, 0 x0, 0 x0d020000, 0 , 0 x00000000 },
{ 0 x5, 0 x19, 0 x0, 0 x0, 0 x0d030000, 0 , 0 x00000000 },
{ 0 x5, 0 x1f, 0 x0, 0 x0, 0 x0d600000, 0 , 0 x00000000 },
{ 0 x5, 0 x1f, 0 x1, 0 x0, 0 x00000000, 0 , 0 x00000000 }
};
/*
* AON NOC aperture lookup table as per file "AON_NOC_Structure.info".
*/
static const char * const tegra194_aonnoc_routeid_initflow[] = {
[0 x0] = "cbb_i/I/0" ,
[0 x1] = "cpu_p_i/I/0" ,
[0 x2] = "dma_m_i/I/0" ,
[0 x3] = "dma_p_i/I/0"
};
static const char * const tegra194_aonnoc_routeid_targflow[] = {
[0 x00] = "multiport1_t/T/aon_misc" ,
[0 x01] = "multiport1_t/T/avic0" ,
[0 x02] = "multiport1_t/T/avic1" ,
[0 x03] = "multiport1_t/T/can1" ,
[0 x04] = "multiport1_t/T/can2" ,
[0 x05] = "multiport1_t/T/dma" ,
[0 x06] = "multiport1_t/T/dmic" ,
[0 x07] = "multiport1_t/T/err_collator" ,
[0 x08] = "multiport1_t/T/fpga_misc" ,
[0 x09] = "multiport1_t/T/gte" ,
[0 x0a] = "multiport1_t/T/hsp" ,
[0 x0b] = "multiport1_t/T/i2c2" ,
[0 x0c] = "multiport1_t/T/i2c8" ,
[0 x0d] = "multiport1_t/T/pwm" ,
[0 x0e] = "multiport1_t/T/spi2" ,
[0 x0f] = "multiport1_t/T/tke" ,
[0 x10] = "multiport1_t/T/uartg" ,
[0 x11] = "RESERVED" ,
[0 x12] = "RESERVED" ,
[0 x13] = "RESERVED" ,
[0 x14] = "RESERVED" ,
[0 x15] = "RESERVED" ,
[0 x16] = "RESERVED" ,
[0 x17] = "RESERVED" ,
[0 x18] = "RESERVED" ,
[0 x19] = "RESERVED" ,
[0 x1a] = "RESERVED" ,
[0 x1b] = "RESERVED" ,
[0 x1c] = "RESERVED" ,
[0 x1d] = "RESERVED" ,
[0 x1e] = "RESERVED" ,
[0 x1f] = "RESERVED" ,
[0 x20] = "multiport0_t/T/aovc" ,
[0 x21] = "multiport0_t/T/atcm" ,
[0 x22] = "multiport0_t/T/cast" ,
[0 x23] = "multiport0_t/T/dast" ,
[0 x24] = "multiport0_t/T/err_collator_car" ,
[0 x25] = "multiport0_t/T/gpio" ,
[0 x26] = "multiport0_t/T/i2c10" ,
[0 x27] = "multiport0_t/T/mss" ,
[0 x28] = "multiport0_t/T/padctl_a12" ,
[0 x29] = "multiport0_t/T/padctl_a14" ,
[0 x2a] = "multiport0_t/T/padctl_a15" ,
[0 x2b] = "multiport0_t/T/rtc" ,
[0 x2c] = "multiport0_t/T/tsc" ,
[0 x2d] = "RESERVED" ,
[0 x2e] = "RESERVED" ,
[0 x2f] = "RESERVED" ,
[0 x30] = "multiport2_t/T/aon_vref_ro" ,
[0 x31] = "multiport2_t/T/aopm" ,
[0 x32] = "multiport2_t/T/car" ,
[0 x33] = "multiport2_t/T/pmc" ,
[0 x34] = "ast1_t/T/0" ,
[0 x35] = "cbb_t/T/0" ,
[0 x36] = "cpu_t/T/0" ,
[0 x37] = "firewall_t/T/0" ,
[0 x38] = "svc_t/T/0" ,
[0 x39] = "uartc/T/uartc" ,
[0 x3a] = "RESERVED" ,
[0 x3b] = "RESERVED" ,
[0 x3c] = "RESERVED" ,
[0 x3d] = "RESERVED" ,
[0 x3e] = "RESERVED" ,
[0 x3f] = "RESERVED"
};
/*
* Fields of AON NOC lookup table:
* Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
* Targ mapping, Targ localAddress
* ----------------------------------------------------------------------------
*/
static const struct tegra194_cbb_aperture tegra194_aonnoc_aperture_lookup[] = {
{ 0 x0, 0 x37, 0 x00, 0 , 0 x0c640000, 0 , 0 x00000000 },
{ 0 x0, 0 x20, 0 x00, 0 , 0 x0c3b0000, 0 , 0 x00000000 },
{ 0 x0, 0 x21, 0 x00, 0 , 0 x0c000000, 0 , 0 x00000000 },
{ 0 x0, 0 x22, 0 x00, 0 , 0 x0c040000, 0 , 0 x00000000 },
{ 0 x0, 0 x23, 0 x00, 0 , 0 x0c050000, 0 , 0 x00000000 },
{ 0 x0, 0 x24, 0 x00, 0 , 0 x20cf0000, 0 , 0 x00000000 },
{ 0 x0, 0 x25, 0 x00, 0 , 0 x0c2f0000, 0 , 0 x00000000 },
{ 0 x0, 0 x26, 0 x00, 0 , 0 x0c230000, 0 , 0 x00000000 },
{ 0 x0, 0 x27, 0 x00, 0 , 0 x0c350000, 0 , 0 x00000000 },
{ 0 x0, 0 x28, 0 x00, 0 , 0 x0c301000, 0 , 0 x00000000 },
{ 0 x0, 0 x29, 0 x00, 0 , 0 x0c302000, 0 , 0 x00000000 },
{ 0 x0, 0 x2a, 0 x00, 0 , 0 x0c303000, 0 , 0 x00000000 },
{ 0 x0, 0 x2b, 0 x00, 0 , 0 x0c2a0000, 0 , 0 x00000000 },
{ 0 x0, 0 x2c, 0 x00, 0 , 0 x0c2b0000, 0 , 0 x00000000 },
{ 0 x0, 0 x2c, 0 x01, 0 , 0 x0c2c0000, 1 , 0 x00010000 },
{ 0 x0, 0 x2c, 0 x02, 0 , 0 x0c2d0000, 2 , 0 x00020000 },
{ 0 x0, 0 x2c, 0 x03, 0 , 0 x0c2e0000, 3 , 0 x00030000 },
{ 0 x0, 0 x00, 0 x00, 0 , 0 x0c660000, 0 , 0 x00000000 },
{ 0 x0, 0 x01, 0 x00, 0 , 0 x0c020000, 0 , 0 x00000000 },
{ 0 x0, 0 x02, 0 x00, 0 , 0 x0c030000, 0 , 0 x00000000 },
{ 0 x0, 0 x03, 0 x00, 0 , 0 x0c310000, 0 , 0 x00000000 },
{ 0 x0, 0 x04, 0 x00, 0 , 0 x0c320000, 0 , 0 x00000000 },
{ 0 x0, 0 x05, 0 x00, 0 , 0 x0c0a0000, 2 , 0 x00040000 },
{ 0 x0, 0 x05, 0 x01, 0 , 0 x0c0b0000, 3 , 0 x00050000 },
{ 0 x0, 0 x05, 0 x02, 0 , 0 x0c0e0000, 5 , 0 x00080000 },
{ 0 x0, 0 x05, 0 x03, 0 , 0 x0c060000, 0 , 0 x00000000 },
{ 0 x0, 0 x05, 0 x04, 0 , 0 x0c080000, 1 , 0 x00020000 },
{ 0 x0, 0 x05, 0 x05, 0 , 0 x0c0c0000, 4 , 0 x00060000 },
{ 0 x0, 0 x06, 0 x00, 0 , 0 x0c330000, 0 , 0 x00000000 },
{ 0 x0, 0 x07, 0 x00, 0 , 0 x0c650000, 0 , 0 x00000000 },
{ 0 x0, 0 x08, 0 x00, 0 , 0 x0c3e0000, 0 , 0 x00000000 },
{ 0 x0, 0 x09, 0 x00, 0 , 0 x0c1e0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0a, 0 x00, 0 , 0 x0c150000, 0 , 0 x00000000 },
{ 0 x0, 0 x0a, 0 x01, 0 , 0 x0c160000, 1 , 0 x00010000 },
{ 0 x0, 0 x0a, 0 x02, 0 , 0 x0c170000, 2 , 0 x00020000 },
{ 0 x0, 0 x0a, 0 x03, 0 , 0 x0c180000, 3 , 0 x00030000 },
{ 0 x0, 0 x0a, 0 x04, 0 , 0 x0c190000, 4 , 0 x00040000 },
{ 0 x0, 0 x0a, 0 x05, 0 , 0 x0c1a0000, 5 , 0 x00050000 },
{ 0 x0, 0 x0a, 0 x06, 0 , 0 x0c1b0000, 6 , 0 x00060000 },
{ 0 x0, 0 x0a, 0 x07, 0 , 0 x0c1c0000, 7 , 0 x00070000 },
{ 0 x0, 0 x0a, 0 x08, 0 , 0 x0c1d0000, 8 , 0 x00080000 },
{ 0 x0, 0 x0b, 0 x00, 0 , 0 x0c240000, 0 , 0 x00000000 },
{ 0 x0, 0 x0c, 0 x00, 0 , 0 x0c250000, 0 , 0 x00000000 },
{ 0 x0, 0 x0d, 0 x00, 0 , 0 x0c340000, 0 , 0 x00000000 },
{ 0 x0, 0 x0e, 0 x00, 0 , 0 x0c260000, 0 , 0 x00000000 },
{ 0 x0, 0 x0f, 0 x00, 0 , 0 x0c0f0000, 0 , 0 x00000000 },
{ 0 x0, 0 x0f, 0 x01, 0 , 0 x0c100000, 1 , 0 x00010000 },
{ 0 x0, 0 x0f, 0 x02, 0 , 0 x0c110000, 2 , 0 x00020000 },
{ 0 x0, 0 x0f, 0 x03, 0 , 0 x0c120000, 3 , 0 x00030000 },
{ 0 x0, 0 x0f, 0 x04, 0 , 0 x0c130000, 4 , 0 x00040000 },
{ 0 x0, 0 x0f, 0 x05, 0 , 0 x0c140000, 5 , 0 x00050000 },
{ 0 x0, 0 x10, 0 x00, 0 , 0 x0c290000, 0 , 0 x00000000 },
{ 0 x0, 0 x30, 0 x00, 0 , 0 x20ce0000, 0 , 0 x00000000 },
{ 0 x0, 0 x31, 0 x00, 0 , 0 x0c1f0000, 0 , 0 x00000000 },
{ 0 x0, 0 x31, 0 x01, 0 , 0 x0c200000, 1 , 0 x00010000 },
{ 0 x0, 0 x31, 0 x02, 0 , 0 x0c210000, 2 , 0 x00020000 },
{ 0 x0, 0 x31, 0 x03, 0 , 0 x0c220000, 3 , 0 x00030000 },
{ 0 x0, 0 x32, 0 x00, 0 , 0 x20cc0000, 3 , 0 x001c0000 },
{ 0 x0, 0 x32, 0 x01, 0 , 0 x20c80000, 2 , 0 x00180000 },
{ 0 x0, 0 x32, 0 x02, 0 , 0 x20c00000, 1 , 0 x00100000 },
{ 0 x0, 0 x32, 0 x03, 0 , 0 x20b00000, 0 , 0 x00000000 },
{ 0 x0, 0 x33, 0 x00, 0 , 0 x0c360000, 0 , 0 x00000000 },
{ 0 x0, 0 x33, 0 x01, 0 , 0 x0c370000, 1 , 0 x00010000 },
{ 0 x0, 0 x33, 0 x02, 0 , 0 x0c3a0000, 3 , 0 x00040000 },
{ 0 x0, 0 x33, 0 x03, 0 , 0 x0c380000, 2 , 0 x00020000 },
{ 0 x0, 0 x38, 0 x00, 0 , 0 x0c600000, 0 , 0 x00000000 },
{ 0 x0, 0 x38, 0 x01, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x0, 0 x39, 0 x00, 0 , 0 x0c280000, 0 , 0 x00000000 },
{ 0 x1, 0 x35, 0 x00, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x1, 0 x35, 0 x01, 0 , 0 x00100000, 1 , 0 x00100000 },
{ 0 x1, 0 x35, 0 x02, 0 , 0 x05a00000, 11 , 0 x05a00000 },
{ 0 x1, 0 x35, 0 x03, 0 , 0 x05b00000, 32 , 0 x05b00000 },
{ 0 x1, 0 x35, 0 x04, 0 , 0 x05c00000, 33 , 0 x05c00000 },
{ 0 x1, 0 x35, 0 x05, 0 , 0 x05d00000, 12 , 0 x05d00000 },
{ 0 x1, 0 x35, 0 x06, 0 , 0 x20000000, 19 , 0 x20000000 },
{ 0 x1, 0 x35, 0 x07, 0 , 0 x20100000, 20 , 0 x20100000 },
{ 0 x1, 0 x35, 0 x08, 0 , 0 x20a00000, 24 , 0 x20a00000 },
{ 0 x1, 0 x35, 0 x09, 0 , 0 x20d00000, 25 , 0 x20d00000 },
{ 0 x1, 0 x35, 0 x0a, 0 , 0 x00200000, 2 , 0 x00200000 },
{ 0 x1, 0 x35, 0 x0b, 0 , 0 x05800000, 10 , 0 x05800000 },
{ 0 x1, 0 x35, 0 x0c, 0 , 0 x05e00000, 13 , 0 x05e00000 },
{ 0 x1, 0 x35, 0 x0d, 0 , 0 x20200000, 21 , 0 x20200000 },
{ 0 x1, 0 x35, 0 x0e, 0 , 0 x20800000, 23 , 0 x20800000 },
{ 0 x1, 0 x35, 0 x0f, 0 , 0 x20e00000, 26 , 0 x20e00000 },
{ 0 x1, 0 x35, 0 x10, 0 , 0 x00400000, 3 , 0 x00400000 },
{ 0 x1, 0 x35, 0 x11, 0 , 0 x20400000, 22 , 0 x20400000 },
{ 0 x1, 0 x35, 0 x12, 0 , 0 x00800000, 4 , 0 x00800000 },
{ 0 x1, 0 x35, 0 x13, 0 , 0 x05000000, 9 , 0 x05000000 },
{ 0 x1, 0 x35, 0 x14, 0 , 0 x0c800000, 34 , 0 x0c800000 },
{ 0 x1, 0 x35, 0 x15, 0 , 0 x01000000, 5 , 0 x01000000 },
{ 0 x1, 0 x35, 0 x16, 0 , 0 x03000000, 7 , 0 x03000000 },
{ 0 x1, 0 x35, 0 x17, 0 , 0 x04000000, 8 , 0 x04000000 },
{ 0 x1, 0 x35, 0 x18, 0 , 0 x0d000000, 16 , 0 x0d000000 },
{ 0 x1, 0 x35, 0 x19, 0 , 0 x21000000, 27 , 0 x21000000 },
{ 0 x1, 0 x35, 0 x1a, 0 , 0 x02000000, 6 , 0 x02000000 },
{ 0 x1, 0 x35, 0 x1b, 0 , 0 x06000000, 14 , 0 x06000000 },
{ 0 x1, 0 x35, 0 x1c, 0 , 0 x0e000000, 17 , 0 x0e000000 },
{ 0 x1, 0 x35, 0 x1d, 0 , 0 x22000000, 28 , 0 x22000000 },
{ 0 x1, 0 x35, 0 x1e, 0 , 0 x08000000, 15 , 0 x08000000 },
{ 0 x1, 0 x35, 0 x1f, 0 , 0 x24000000, 29 , 0 x24000000 },
{ 0 x1, 0 x35, 0 x20, 0 , 0 x28000000, 30 , 0 x28000000 },
{ 0 x1, 0 x35, 0 x21, 0 , 0 x10000000, 18 , 0 x10000000 },
{ 0 x1, 0 x35, 0 x22, 0 , 0 x30000000, 31 , 0 x30000000 },
{ 0 x1, 0 x37, 0 x00, 0 , 0 x0c640000, 0 , 0 x00000000 },
{ 0 x1, 0 x20, 0 x00, 0 , 0 x0c3b0000, 0 , 0 x00000000 },
{ 0 x1, 0 x21, 0 x00, 0 , 0 x0c000000, 0 , 0 x00000000 },
{ 0 x1, 0 x22, 0 x00, 0 , 0 x0c040000, 0 , 0 x00000000 },
{ 0 x1, 0 x23, 0 x00, 0 , 0 x0c050000, 0 , 0 x00000000 },
{ 0 x1, 0 x24, 0 x00, 0 , 0 x20cf0000, 0 , 0 x00000000 },
{ 0 x1, 0 x25, 0 x00, 0 , 0 x0c2f0000, 0 , 0 x00000000 },
{ 0 x1, 0 x26, 0 x00, 0 , 0 x0c230000, 0 , 0 x00000000 },
{ 0 x1, 0 x27, 0 x00, 0 , 0 x0c350000, 0 , 0 x00000000 },
{ 0 x1, 0 x28, 0 x00, 0 , 0 x0c301000, 0 , 0 x00000000 },
{ 0 x1, 0 x29, 0 x00, 0 , 0 x0c302000, 0 , 0 x00000000 },
{ 0 x1, 0 x2a, 0 x00, 0 , 0 x0c303000, 0 , 0 x00000000 },
{ 0 x1, 0 x2b, 0 x00, 0 , 0 x0c2a0000, 0 , 0 x00000000 },
{ 0 x1, 0 x2c, 0 x00, 0 , 0 x0c2b0000, 0 , 0 x00000000 },
{ 0 x1, 0 x2c, 0 x01, 0 , 0 x0c2c0000, 1 , 0 x00010000 },
{ 0 x1, 0 x2c, 0 x02, 0 , 0 x0c2d0000, 2 , 0 x00020000 },
{ 0 x1, 0 x2c, 0 x03, 0 , 0 x0c2e0000, 3 , 0 x00030000 },
{ 0 x1, 0 x00, 0 x00, 0 , 0 x0c660000, 0 , 0 x00000000 },
{ 0 x1, 0 x01, 0 x00, 0 , 0 x0c020000, 0 , 0 x00000000 },
{ 0 x1, 0 x02, 0 x00, 0 , 0 x0c030000, 0 , 0 x00000000 },
{ 0 x1, 0 x03, 0 x00, 0 , 0 x0c310000, 0 , 0 x00000000 },
{ 0 x1, 0 x04, 0 x00, 0 , 0 x0c320000, 0 , 0 x00000000 },
{ 0 x1, 0 x05, 0 x00, 0 , 0 x0c0a0000, 2 , 0 x00040000 },
{ 0 x1, 0 x05, 0 x01, 0 , 0 x0c0b0000, 3 , 0 x00050000 },
{ 0 x1, 0 x05, 0 x02, 0 , 0 x0c0e0000, 5 , 0 x00080000 },
{ 0 x1, 0 x05, 0 x03, 0 , 0 x0c060000, 0 , 0 x00000000 },
{ 0 x1, 0 x05, 0 x04, 0 , 0 x0c080000, 1 , 0 x00020000 },
{ 0 x1, 0 x05, 0 x05, 0 , 0 x0c0c0000, 4 , 0 x00060000 },
{ 0 x1, 0 x06, 0 x00, 0 , 0 x0c330000, 0 , 0 x00000000 },
{ 0 x1, 0 x07, 0 x00, 0 , 0 x0c650000, 0 , 0 x00000000 },
{ 0 x1, 0 x08, 0 x00, 0 , 0 x0c3e0000, 0 , 0 x00000000 },
{ 0 x1, 0 x09, 0 x00, 0 , 0 x0c1e0000, 0 , 0 x00000000 },
{ 0 x1, 0 x0a, 0 x00, 0 , 0 x0c150000, 0 , 0 x00000000 },
{ 0 x1, 0 x0a, 0 x01, 0 , 0 x0c160000, 1 , 0 x00010000 },
{ 0 x1, 0 x0a, 0 x02, 0 , 0 x0c170000, 2 , 0 x00020000 },
{ 0 x1, 0 x0a, 0 x03, 0 , 0 x0c180000, 3 , 0 x00030000 },
{ 0 x1, 0 x0a, 0 x04, 0 , 0 x0c190000, 4 , 0 x00040000 },
{ 0 x1, 0 x0a, 0 x05, 0 , 0 x0c1a0000, 5 , 0 x00050000 },
{ 0 x1, 0 x0a, 0 x06, 0 , 0 x0c1b0000, 6 , 0 x00060000 },
{ 0 x1, 0 x0a, 0 x07, 0 , 0 x0c1c0000, 7 , 0 x00070000 },
{ 0 x1, 0 x0a, 0 x08, 0 , 0 x0c1d0000, 8 , 0 x00080000 },
{ 0 x1, 0 x0b, 0 x00, 0 , 0 x0c240000, 0 , 0 x00000000 },
{ 0 x1, 0 x0c, 0 x00, 0 , 0 x0c250000, 0 , 0 x00000000 },
{ 0 x1, 0 x0d, 0 x00, 0 , 0 x0c340000, 0 , 0 x00000000 },
{ 0 x1, 0 x0e, 0 x00, 0 , 0 x0c260000, 0 , 0 x00000000 },
{ 0 x1, 0 x0f, 0 x00, 0 , 0 x0c0f0000, 0 , 0 x00000000 },
{ 0 x1, 0 x0f, 0 x01, 0 , 0 x0c100000, 1 , 0 x00010000 },
{ 0 x1, 0 x0f, 0 x02, 0 , 0 x0c110000, 2 , 0 x00020000 },
{ 0 x1, 0 x0f, 0 x03, 0 , 0 x0c120000, 3 , 0 x00030000 },
{ 0 x1, 0 x0f, 0 x04, 0 , 0 x0c130000, 4 , 0 x00040000 },
{ 0 x1, 0 x0f, 0 x05, 0 , 0 x0c140000, 5 , 0 x00050000 },
{ 0 x1, 0 x10, 0 x00, 0 , 0 x0c290000, 0 , 0 x00000000 },
{ 0 x1, 0 x30, 0 x00, 0 , 0 x20ce0000, 0 , 0 x00000000 },
{ 0 x1, 0 x31, 0 x00, 0 , 0 x0c1f0000, 0 , 0 x00000000 },
{ 0 x1, 0 x31, 0 x01, 0 , 0 x0c200000, 1 , 0 x00010000 },
{ 0 x1, 0 x31, 0 x02, 0 , 0 x0c210000, 2 , 0 x00020000 },
{ 0 x1, 0 x31, 0 x03, 0 , 0 x0c220000, 3 , 0 x00030000 },
{ 0 x1, 0 x32, 0 x00, 0 , 0 x20cc0000, 3 , 0 x001c0000 },
{ 0 x1, 0 x32, 0 x01, 0 , 0 x20c80000, 2 , 0 x00180000 },
{ 0 x1, 0 x32, 0 x02, 0 , 0 x20c00000, 1 , 0 x00100000 },
{ 0 x1, 0 x32, 0 x03, 0 , 0 x20b00000, 0 , 0 x00000000 },
{ 0 x1, 0 x33, 0 x00, 0 , 0 x0c360000, 0 , 0 x00000000 },
{ 0 x1, 0 x33, 0 x01, 0 , 0 x0c370000, 1 , 0 x00010000 },
{ 0 x1, 0 x33, 0 x02, 0 , 0 x0c3a0000, 3 , 0 x00040000 },
{ 0 x1, 0 x33, 0 x03, 0 , 0 x0c380000, 2 , 0 x00020000 },
{ 0 x1, 0 x38, 0 x00, 0 , 0 x0c600000, 0 , 0 x00000000 },
{ 0 x1, 0 x38, 0 x01, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x1, 0 x39, 0 x00, 0 , 0 x0c280000, 0 , 0 x00000000 },
{ 0 x2, 0 x34, 0 x00, 0 , 0 x40000000, 0 , 0 x40000000 },
{ 0 x2, 0 x34, 0 x01, 0 , 0 x80000000, 1 , 0 x80000000 },
{ 0 x2, 0 x36, 0 x00, 0 , 0 x0c400000, 0 , 0 x0c400000 },
{ 0 x2, 0 x36, 0 x01, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x35, 0 x00, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x35, 0 x01, 0 , 0 x00100000, 1 , 0 x00100000 },
{ 0 x3, 0 x35, 0 x02, 0 , 0 x05a00000, 11 , 0 x05a00000 },
{ 0 x3, 0 x35, 0 x03, 0 , 0 x05b00000, 32 , 0 x05b00000 },
{ 0 x3, 0 x35, 0 x04, 0 , 0 x05c00000, 33 , 0 x05c00000 },
{ 0 x3, 0 x35, 0 x05, 0 , 0 x05d00000, 12 , 0 x05d00000 },
{ 0 x3, 0 x35, 0 x06, 0 , 0 x20000000, 19 , 0 x20000000 },
{ 0 x3, 0 x35, 0 x07, 0 , 0 x20100000, 20 , 0 x20100000 },
{ 0 x3, 0 x35, 0 x08, 0 , 0 x20a00000, 24 , 0 x20a00000 },
{ 0 x3, 0 x35, 0 x09, 0 , 0 x20d00000, 25 , 0 x20d00000 },
{ 0 x3, 0 x35, 0 x0a, 0 , 0 x00200000, 2 , 0 x00200000 },
{ 0 x3, 0 x35, 0 x0b, 0 , 0 x05800000, 10 , 0 x05800000 },
{ 0 x3, 0 x35, 0 x0c, 0 , 0 x05e00000, 13 , 0 x05e00000 },
{ 0 x3, 0 x35, 0 x0d, 0 , 0 x20200000, 21 , 0 x20200000 },
{ 0 x3, 0 x35, 0 x0e, 0 , 0 x20800000, 23 , 0 x20800000 },
{ 0 x3, 0 x35, 0 x0f, 0 , 0 x20e00000, 26 , 0 x20e00000 },
{ 0 x3, 0 x35, 0 x10, 0 , 0 x00400000, 3 , 0 x00400000 },
{ 0 x3, 0 x35, 0 x11, 0 , 0 x20400000, 22 , 0 x20400000 },
{ 0 x3, 0 x35, 0 x12, 0 , 0 x00800000, 4 , 0 x00800000 },
{ 0 x3, 0 x35, 0 x13, 0 , 0 x50000000, 9 , 0 x05000000 },
{ 0 x3, 0 x35, 0 x14, 0 , 0 xc0800000, 34 , 0 x0c800000 },
{ 0 x3, 0 x35, 0 x15, 0 , 0 x10000000, 5 , 0 x01000000 },
{ 0 x3, 0 x35, 0 x16, 0 , 0 x30000000, 7 , 0 x03000000 },
{ 0 x3, 0 x35, 0 x17, 0 , 0 x04000000, 8 , 0 x04000000 },
{ 0 x3, 0 x35, 0 x18, 0 , 0 x0d000000, 16 , 0 x0d000000 },
{ 0 x3, 0 x35, 0 x19, 0 , 0 x21000000, 27 , 0 x21000000 },
{ 0 x3, 0 x35, 0 x1a, 0 , 0 x02000000, 6 , 0 x02000000 },
{ 0 x3, 0 x35, 0 x1b, 0 , 0 x06000000, 14 , 0 x06000000 },
{ 0 x3, 0 x35, 0 x1c, 0 , 0 x0e000000, 17 , 0 x0e000000 },
{ 0 x3, 0 x35, 0 x1d, 0 , 0 x22000000, 28 , 0 x22000000 },
{ 0 x3, 0 x35, 0 x1e, 0 , 0 x08000000, 15 , 0 x08000000 },
{ 0 x3, 0 x35, 0 x1f, 0 , 0 x24000000, 29 , 0 x24000000 },
{ 0 x3, 0 x35, 0 x20, 0 , 0 x28000000, 30 , 0 x28000000 },
{ 0 x3, 0 x35, 0 x21, 0 , 0 x10000000, 18 , 0 x10000000 },
{ 0 x3, 0 x35, 0 x22, 0 , 0 x30000000, 31 , 0 x30000000 },
{ 0 x3, 0 x37, 0 x00, 0 , 0 x0c640000, 0 , 0 x00000000 },
{ 0 x3, 0 x20, 0 x00, 0 , 0 x0c3b0000, 0 , 0 x00000000 },
{ 0 x3, 0 x21, 0 x00, 0 , 0 x0c000000, 0 , 0 x00000000 },
{ 0 x3, 0 x22, 0 x00, 0 , 0 x0c040000, 0 , 0 x00000000 },
{ 0 x3, 0 x23, 0 x00, 0 , 0 x0c050000, 0 , 0 x00000000 },
{ 0 x3, 0 x24, 0 x00, 0 , 0 x20cf0000, 0 , 0 x00000000 },
{ 0 x3, 0 x25, 0 x00, 0 , 0 x0c2f0000, 0 , 0 x00000000 },
{ 0 x3, 0 x26, 0 x00, 0 , 0 x0c230000, 0 , 0 x00000000 },
{ 0 x3, 0 x27, 0 x00, 0 , 0 x0c350000, 0 , 0 x00000000 },
{ 0 x3, 0 x28, 0 x00, 0 , 0 x0c301000, 0 , 0 x00000000 },
{ 0 x3, 0 x29, 0 x00, 0 , 0 x0c302000, 0 , 0 x00000000 },
{ 0 x3, 0 x2a, 0 x00, 0 , 0 x0c303000, 0 , 0 x00000000 },
{ 0 x3, 0 x2b, 0 x00, 0 , 0 x0c2a0000, 0 , 0 x00000000 },
{ 0 x3, 0 x2c, 0 x00, 0 , 0 x0c2b0000, 0 , 0 x00000000 },
{ 0 x3, 0 x2c, 0 x01, 0 , 0 x0c2c0000, 1 , 0 x00010000 },
{ 0 x3, 0 x2c, 0 x02, 0 , 0 x0c2d0000, 2 , 0 x00020000 },
{ 0 x3, 0 x2c, 0 x03, 0 , 0 x0c2e0000, 3 , 0 x00030000 },
{ 0 x3, 0 x00, 0 x00, 0 , 0 x0c660000, 0 , 0 x00000000 },
{ 0 x3, 0 x01, 0 x00, 0 , 0 x0c020000, 0 , 0 x00000000 },
{ 0 x3, 0 x02, 0 x00, 0 , 0 x0c030000, 0 , 0 x00000000 },
{ 0 x3, 0 x03, 0 x00, 0 , 0 x0c310000, 0 , 0 x00000000 },
{ 0 x3, 0 x04, 0 x00, 0 , 0 x0c320000, 0 , 0 x00000000 },
{ 0 x3, 0 x05, 0 x00, 0 , 0 x0c0a0000, 2 , 0 x00040000 },
{ 0 x3, 0 x05, 0 x01, 0 , 0 x0c0b0000, 3 , 0 x00050000 },
{ 0 x3, 0 x05, 0 x02, 0 , 0 x0c0e0000, 5 , 0 x00080000 },
{ 0 x3, 0 x05, 0 x03, 0 , 0 x0c060000, 0 , 0 x00000000 },
{ 0 x3, 0 x05, 0 x04, 0 , 0 x0c080000, 1 , 0 x00020000 },
{ 0 x3, 0 x05, 0 x05, 0 , 0 x0c0c0000, 4 , 0 x00060000 },
{ 0 x3, 0 x06, 0 x00, 0 , 0 x0c330000, 0 , 0 x00000000 },
{ 0 x3, 0 x07, 0 x00, 0 , 0 x0c650000, 0 , 0 x00000000 },
{ 0 x3, 0 x08, 0 x00, 0 , 0 x0c3e0000, 0 , 0 x00000000 },
{ 0 x3, 0 x09, 0 x00, 0 , 0 x0c1e0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0a, 0 x00, 0 , 0 x0c150000, 0 , 0 x00000000 },
{ 0 x3, 0 x0a, 0 x01, 0 , 0 x0c160000, 1 , 0 x00010000 },
{ 0 x3, 0 x0a, 0 x02, 0 , 0 x0c170000, 2 , 0 x00020000 },
{ 0 x3, 0 x0a, 0 x03, 0 , 0 x0c180000, 3 , 0 x00030000 },
{ 0 x3, 0 x0a, 0 x04, 0 , 0 x0c190000, 4 , 0 x00040000 },
{ 0 x3, 0 x0a, 0 x05, 0 , 0 x0c1a0000, 5 , 0 x00050000 },
{ 0 x3, 0 x0a, 0 x06, 0 , 0 x0c1b0000, 6 , 0 x00060000 },
{ 0 x3, 0 x0a, 0 x07, 0 , 0 x0c1c0000, 7 , 0 x00070000 },
{ 0 x3, 0 x0a, 0 x08, 0 , 0 x0c1d0000, 8 , 0 x00080000 },
{ 0 x3, 0 x0b, 0 x00, 0 , 0 x0c240000, 0 , 0 x00000000 },
{ 0 x3, 0 x0c, 0 x00, 0 , 0 x0c250000, 0 , 0 x00000000 },
{ 0 x3, 0 x0d, 0 x00, 0 , 0 x0c340000, 0 , 0 x00000000 },
{ 0 x3, 0 x0e, 0 x00, 0 , 0 x0c260000, 0 , 0 x00000000 },
{ 0 x3, 0 x0f, 0 x00, 0 , 0 x0c0f0000, 0 , 0 x00000000 },
{ 0 x3, 0 x0f, 0 x01, 0 , 0 x0c100000, 1 , 0 x00010000 },
{ 0 x3, 0 x0f, 0 x02, 0 , 0 x0c110000, 2 , 0 x00020000 },
{ 0 x3, 0 x0f, 0 x03, 0 , 0 x0c120000, 3 , 0 x00030000 },
{ 0 x3, 0 x0f, 0 x04, 0 , 0 x0c130000, 4 , 0 x00040000 },
{ 0 x3, 0 x0f, 0 x05, 0 , 0 x0c140000, 5 , 0 x00050000 },
{ 0 x3, 0 x10, 0 x00, 0 , 0 x0c290000, 0 , 0 x00000000 },
{ 0 x3, 0 x30, 0 x00, 0 , 0 x20ce0000, 0 , 0 x00000000 },
{ 0 x3, 0 x31, 0 x00, 0 , 0 x0c1f0000, 0 , 0 x00000000 },
{ 0 x3, 0 x31, 0 x01, 0 , 0 x0c200000, 1 , 0 x00010000 },
{ 0 x3, 0 x31, 0 x02, 0 , 0 x0c210000, 2 , 0 x00020000 },
{ 0 x3, 0 x31, 0 x03, 0 , 0 x0c220000, 3 , 0 x00030000 },
{ 0 x3, 0 x32, 0 x00, 0 , 0 x20cc0000, 3 , 0 x001c0000 },
{ 0 x3, 0 x32, 0 x01, 0 , 0 x20c80000, 2 , 0 x00180000 },
{ 0 x3, 0 x32, 0 x02, 0 , 0 x20c00000, 1 , 0 x00100000 },
{ 0 x3, 0 x32, 0 x03, 0 , 0 x20b00000, 0 , 0 x00000000 },
{ 0 x3, 0 x33, 0 x00, 0 , 0 x0c360000, 0 , 0 x00000000 },
{ 0 x3, 0 x33, 0 x01, 0 , 0 x0c370000, 1 , 0 x00010000 },
{ 0 x3, 0 x33, 0 x02, 0 , 0 x0c3a0000, 3 , 0 x00040000 },
{ 0 x3, 0 x33, 0 x03, 0 , 0 x0c380000, 2 , 0 x00020000 },
{ 0 x3, 0 x38, 0 x00, 0 , 0 x0c600000, 0 , 0 x00000000 },
{ 0 x3, 0 x38, 0 x01, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x39, 0 x00, 0 , 0 x0c280000, 0 , 0 x00000000 }
};
/*
* SCE/RCE NOC aperture lookup table as per file "AON_NOC_Structure.info".
*/
static const char * const tegra194_scenoc_routeid_initflow[] = {
[0 x0] = "cbb_i/I/0" ,
[0 x1] = "cpu_m_i/I/0" ,
[0 x2] = "cpu_p_i/I/0" ,
[0 x3] = "dma_m_i/I/0" ,
[0 x4] = "dma_p_i/I/0" ,
[0 x5] = "RESERVED" ,
[0 x6] = "RESERVED" ,
[0 x7] = "RESERVED"
};
static const char * const tegra194_scenoc_routeid_targflow[] = {
[0 x00] = "multiport0_t/T/atcm_cfg" ,
[0 x01] = "multiport0_t/T/car" ,
[0 x02] = "multiport0_t/T/cast" ,
[0 x03] = "multiport0_t/T/cfg" ,
[0 x04] = "multiport0_t/T/dast" ,
[0 x05] = "multiport0_t/T/dma" ,
[0 x06] = "multiport0_t/T/err_collator" ,
[0 x07] = "multiport0_t/T/err_collator_car" ,
[0 x08] = "multiport0_t/T/fpga_misc" ,
[0 x09] = "multiport0_t/T/fpga_uart" ,
[0 x0a] = "multiport0_t/T/gte" ,
[0 x0b] = "multiport0_t/T/hsp" ,
[0 x0c] = "multiport0_t/T/misc" ,
[0 x0d] = "multiport0_t/T/pm" ,
[0 x0e] = "multiport0_t/T/tke" ,
[0 x0f] = "RESERVED" ,
[0 x10] = "multiport1_t/T/hsm" ,
[0 x11] = "multiport1_t/T/vic0" ,
[0 x12] = "multiport1_t/T/vic1" ,
[0 x13] = "ast0_t/T/0" ,
[0 x14] = "ast1_t/T/0" ,
[0 x15] = "cbb_t/T/0" ,
[0 x16] = "cpu_t/T/0" ,
[0 x17] = "sce_noc_firewall/T/0" ,
[0 x18] = "svc_t/T/0" ,
[0 x19] = "RESERVED" ,
[0 x1a] = "RESERVED" ,
[0 x1b] = "RESERVED" ,
[0 x1c] = "RESERVED" ,
[0 x1d] = "RESERVED" ,
[0 x1e] = "RESERVED" ,
[0 x1f] = "RESERVED"
};
/*
* Fields of SCE/RCE NOC lookup table:
* Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
* Targ mapping, Targ localAddress
* ----------------------------------------------------------------------------
*/
static const struct tegra194_cbb_aperture tegra194_scenoc_apert_lookup[] = {
{ 0 x0, 0 x16, 0 x0, 0 , 0 x0b400000, 0 , 0 x0b400000 },
{ 0 x0, 0 x16, 0 x1, 0 , 0 x0bc00000, 1 , 0 x0bc00000 },
{ 0 x0, 0 x0, 0 x0, 0 , 0 x0b000000, 0 , 0 x00000000 },
{ 0 x0, 0 x0, 0 x1, 0 , 0 x0b800000, 1 , 0 x00000000 },
{ 0 x0, 0 x1, 0 x0, 0 , 0 x20de0000, 3 , 0 x000e0000 },
{ 0 x0, 0 x1, 0 x1, 0 , 0 x210e0000, 7 , 0 x000e0000 },
{ 0 x0, 0 x1, 0 x2, 0 , 0 x20dc0000, 2 , 0 x000c0000 },
{ 0 x0, 0 x1, 0 x3, 0 , 0 x210c0000, 6 , 0 x000c0000 },
{ 0 x0, 0 x1, 0 x4, 0 , 0 x20d80000, 1 , 0 x00080000 },
{ 0 x0, 0 x1, 0 x5, 0 , 0 x21080000, 5 , 0 x00080000 },
{ 0 x0, 0 x1, 0 x6, 0 , 0 x20d00000, 0 , 0 x00000000 },
{ 0 x0, 0 x1, 0 x7, 0 , 0 x21000000, 4 , 0 x00000000 },
{ 0 x0, 0 x2, 0 x0, 0 , 0 x0b040000, 0 , 0 x00000000 },
{ 0 x0, 0 x2, 0 x1, 0 , 0 x0b840000, 1 , 0 x00000000 },
{ 0 x0, 0 x3, 0 x0, 0 , 0 x0b230000, 0 , 0 x00000000 },
{ 0 x0, 0 x3, 0 x1, 0 , 0 x0ba30000, 1 , 0 x00000000 },
{ 0 x0, 0 x4, 0 x0, 0 , 0 x0b050000, 0 , 0 x00000000 },
{ 0 x0, 0 x4, 0 x1, 0 , 0 x0b850000, 1 , 0 x00000000 },
{ 0 x0, 0 x5, 0 x0, 0 , 0 x0b060000, 0 , 0 x00000000 },
{ 0 x0, 0 x5, 0 x1, 0 , 0 x0b070000, 1 , 0 x00010000 },
{ 0 x0, 0 x5, 0 x2, 0 , 0 x0b080000, 2 , 0 x00020000 },
{ 0 x0, 0 x5, 0 x3, 0 , 0 x0b090000, 3 , 0 x00030000 },
{ 0 x0, 0 x5, 0 x4, 0 , 0 x0b0a0000, 4 , 0 x00040000 },
{ 0 x0, 0 x5, 0 x5, 0 , 0 x0b0b0000, 5 , 0 x00050000 },
{ 0 x0, 0 x5, 0 x6, 0 , 0 x0b0c0000, 6 , 0 x00060000 },
{ 0 x0, 0 x5, 0 x7, 0 , 0 x0b0d0000, 7 , 0 x00070000 },
{ 0 x0, 0 x5, 0 x8, 0 , 0 x0b0e0000, 8 , 0 x00080000 },
{ 0 x0, 0 x5, 0 x9, 0 , 0 x0b860000, 9 , 0 x00000000 },
{ 0 x0, 0 x5, 0 xa, 0 , 0 x0b870000, 10 , 0 x00010000 },
{ 0 x0, 0 x5, 0 xb, 0 , 0 x0b880000, 11 , 0 x00020000 },
{ 0 x0, 0 x5, 0 xc, 0 , 0 x0b890000, 12 , 0 x00030000 },
{ 0 x0, 0 x5, 0 xd, 0 , 0 x0b8a0000, 13 , 0 x00040000 },
{ 0 x0, 0 x5, 0 xe, 0 , 0 x0b8b0000, 14 , 0 x00050000 },
{ 0 x0, 0 x5, 0 xf, 0 , 0 x0b8c0000, 15 , 0 x00060000 },
{ 0 x0, 0 x5, 0 x10, 0 , 0 x0b8d0000, 16 , 0 x00070000 },
{ 0 x0, 0 x5, 0 x11, 0 , 0 x0b8e0000, 17 , 0 x00080000 },
{ 0 x0, 0 x6, 0 x0, 0 , 0 x0b650000, 0 , 0 x00000000 },
{ 0 x0, 0 x6, 0 x1, 0 , 0 x0be50000, 1 , 0 x00000000 },
{ 0 x0, 0 x7, 0 x0, 0 , 0 x20df0000, 0 , 0 x00000000 },
{ 0 x0, 0 x7, 0 x1, 0 , 0 x210f0000, 1 , 0 x00000000 },
{ 0 x0, 0 x8, 0 x0, 0 , 0 x0b3e0000, 0 , 0 x00000000 },
{ 0 x0, 0 x8, 0 x1, 0 , 0 x0bbe0000, 1 , 0 x00000000 },
{ 0 x0, 0 x9, 0 x0, 0 , 0 x0b3d0000, 0 , 0 x00000000 },
{ 0 x0, 0 x9, 0 x1, 0 , 0 x0bbd0000, 1 , 0 x00000000 },
{ 0 x0, 0 xa, 0 x0, 0 , 0 x0b1e0000, 0 , 0 x00000000 },
{ 0 x0, 0 xa, 0 x1, 0 , 0 x0b9e0000, 1 , 0 x00000000 },
{ 0 x0, 0 xb, 0 x0, 0 , 0 x0b150000, 0 , 0 x00000000 },
{ 0 x0, 0 xb, 0 x1, 0 , 0 x0b160000, 1 , 0 x00010000 },
{ 0 x0, 0 xb, 0 x2, 0 , 0 x0b170000, 2 , 0 x00020000 },
{ 0 x0, 0 xb, 0 x3, 0 , 0 x0b180000, 3 , 0 x00030000 },
{ 0 x0, 0 xb, 0 x4, 0 , 0 x0b190000, 4 , 0 x00040000 },
{ 0 x0, 0 xb, 0 x5, 0 , 0 x0b1a0000, 5 , 0 x00050000 },
{ 0 x0, 0 xb, 0 x6, 0 , 0 x0b1b0000, 6 , 0 x00060000 },
{ 0 x0, 0 xb, 0 x7, 0 , 0 x0b1c0000, 7 , 0 x00070000 },
{ 0 x0, 0 xb, 0 x8, 0 , 0 x0b1d0000, 8 , 0 x00080000 },
{ 0 x0, 0 xb, 0 x9, 0 , 0 x0b950000, 9 , 0 x00000000 },
{ 0 x0, 0 xb, 0 xa, 0 , 0 x0b960000, 10 , 0 x00010000 },
{ 0 x0, 0 xb, 0 xb, 0 , 0 x0b970000, 11 , 0 x00020000 },
{ 0 x0, 0 xb, 0 xc, 0 , 0 x0b980000, 12 , 0 x00030000 },
{ 0 x0, 0 xb, 0 xd, 0 , 0 x0b990000, 13 , 0 x00040000 },
{ 0 x0, 0 xb, 0 xe, 0 , 0 x0b9a0000, 14 , 0 x00050000 },
{ 0 x0, 0 xb, 0 xf, 0 , 0 x0b9b0000, 15 , 0 x00060000 },
{ 0 x0, 0 xb, 0 x10, 0 , 0 x0b9c0000, 16 , 0 x00070000 },
{ 0 x0, 0 xb, 0 x11, 0 , 0 x0b9d0000, 17 , 0 x00080000 },
{ 0 x0, 0 xc, 0 x0, 0 , 0 x0b660000, 0 , 0 x00000000 },
{ 0 x0, 0 xc, 0 x1, 0 , 0 x0be60000, 1 , 0 x00000000 },
{ 0 x0, 0 xd, 0 x0, 0 , 0 x0b1f0000, 0 , 0 x00000000 },
{ 0 x0, 0 xd, 0 x1, 0 , 0 x0b200000, 1 , 0 x00010000 },
{ 0 x0, 0 xd, 0 x2, 0 , 0 x0b210000, 2 , 0 x00020000 },
{ 0 x0, 0 xd, 0 x3, 0 , 0 x0b220000, 3 , 0 x00030000 },
{ 0 x0, 0 xd, 0 x4, 0 , 0 x0b9f0000, 4 , 0 x00000000 },
{ 0 x0, 0 xd, 0 x5, 0 , 0 x0ba00000, 5 , 0 x00010000 },
{ 0 x0, 0 xd, 0 x6, 0 , 0 x0ba10000, 6 , 0 x00020000 },
{ 0 x0, 0 xd, 0 x7, 0 , 0 x0ba20000, 7 , 0 x00030000 },
{ 0 x0, 0 xe, 0 x0, 0 , 0 x0b0f0000, 0 , 0 x00000000 },
{ 0 x0, 0 xe, 0 x1, 0 , 0 x0b100000, 1 , 0 x00010000 },
{ 0 x0, 0 xe, 0 x2, 0 , 0 x0b110000, 2 , 0 x00020000 },
{ 0 x0, 0 xe, 0 x3, 0 , 0 x0b120000, 3 , 0 x00030000 },
{ 0 x0, 0 xe, 0 x4, 0 , 0 x0b130000, 4 , 0 x00040000 },
{ 0 x0, 0 xe, 0 x5, 0 , 0 x0b140000, 5 , 0 x00050000 },
{ 0 x0, 0 xe, 0 x6, 0 , 0 x0b8f0000, 6 , 0 x00000000 },
{ 0 x0, 0 xe, 0 x7, 0 , 0 x0b900000, 7 , 0 x00010000 },
{ 0 x0, 0 xe, 0 x8, 0 , 0 x0b910000, 8 , 0 x00020000 },
{ 0 x0, 0 xe, 0 x9, 0 , 0 x0b920000, 9 , 0 x00030000 },
{ 0 x0, 0 xe, 0 xa, 0 , 0 x0b930000, 10 , 0 x00040000 },
{ 0 x0, 0 xe, 0 xb, 0 , 0 x0b940000, 11 , 0 x00050000 },
{ 0 x0, 0 x10, 0 x0, 0 , 0 x0b240000, 0 , 0 x00000000 },
{ 0 x0, 0 x10, 0 x1, 0 , 0 x0ba40000, 1 , 0 x00000000 },
{ 0 x0, 0 x11, 0 x0, 0 , 0 x0b020000, 0 , 0 x00000000 },
{ 0 x0, 0 x11, 0 x1, 0 , 0 x0b820000, 1 , 0 x00000000 },
{ 0 x0, 0 x12, 0 x0, 0 , 0 x0b030000, 0 , 0 x00000000 },
{ 0 x0, 0 x12, 0 x1, 0 , 0 x0b830000, 1 , 0 x00000000 },
{ 0 x0, 0 x17, 0 x0, 0 , 0 x0b640000, 0 , 0 x00000000 },
{ 0 x0, 0 x17, 0 x1, 0 , 0 x0be40000, 1 , 0 x00000000 },
{ 0 x0, 0 x18, 0 x0, 0 , 0 x0b600000, 0 , 0 x00000000 },
{ 0 x0, 0 x18, 0 x1, 0 , 0 x0be00000, 1 , 0 x00000000 },
{ 0 x0, 0 x18, 0 x2, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x0, 0 x18, 0 x3, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x1, 0 x13, 0 x0, 0 , 0 x40000000, 0 , 0 x40000000 },
{ 0 x1, 0 x13, 0 x1, 1 , 0 x80000000, 1 , 0 x80000000 },
{ 0 x1, 0 x13, 0 x2, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x2, 0 x15, 0 x0, 0 , 0 x20c00000, 8 , 0 x20c00000 },
{ 0 x2, 0 x15, 0 x1, 0 , 0 x21100000, 22 , 0 x21100000 },
{ 0 x2, 0 x15, 0 x2, 0 , 0 x20e00000, 9 , 0 x20e00000 },
{ 0 x2, 0 x15, 0 x3, 0 , 0 x21200000, 23 , 0 x21200000 },
{ 0 x2, 0 x15, 0 x4, 0 , 0 x20800000, 7 , 0 x20800000 },
{ 0 x2, 0 x15, 0 x5, 0 , 0 x21400000, 24 , 0 x21400000 },
{ 0 x2, 0 x15, 0 x6, 0 , 0 x0b000000, 18 , 0 x0b000000 },
{ 0 x2, 0 x15, 0 x7, 0 , 0 x0b800000, 3 , 0 x0b800000 },
{ 0 x2, 0 x15, 0 x8, 0 , 0 x20000000, 6 , 0 x20000000 },
{ 0 x2, 0 x15, 0 x9, 0 , 0 x21800000, 25 , 0 x21800000 },
{ 0 x2, 0 x15, 0 xa, 0 , 0 x0a000000, 2 , 0 x0a000000 },
{ 0 x2, 0 x15, 0 xb, 0 , 0 x0a000000, 17 , 0 x0a000000 },
{ 0 x2, 0 x15, 0 xc, 0 , 0 x20000000, 21 , 0 x20000000 },
{ 0 x2, 0 x15, 0 xd, 0 , 0 x21000000, 10 , 0 x21000000 },
{ 0 x2, 0 x15, 0 xe, 0 , 0 x08000000, 1 , 0 x08000000 },
{ 0 x2, 0 x15, 0 xf, 0 , 0 x08000000, 16 , 0 x08000000 },
{ 0 x2, 0 x15, 0 x10, 0 , 0 x22000000, 11 , 0 x22000000 },
{ 0 x2, 0 x15, 0 x11, 0 , 0 x22000000, 26 , 0 x22000000 },
{ 0 x2, 0 x15, 0 x12, 0 , 0 x0c000000, 4 , 0 x0c000000 },
{ 0 x2, 0 x15, 0 x13, 0 , 0 x0c000000, 19 , 0 x0c000000 },
{ 0 x2, 0 x15, 0 x14, 0 , 0 x24000000, 12 , 0 x24000000 },
{ 0 x2, 0 x15, 0 x15, 0 , 0 x24000000, 27 , 0 x24000000 },
{ 0 x2, 0 x15, 0 x16, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x2, 0 x15, 0 x17, 0 , 0 x00000000, 15 , 0 x00000000 },
{ 0 x2, 0 x15, 0 x18, 0 , 0 x28000000, 13 , 0 x28000000 },
{ 0 x2, 0 x15, 0 x19, 0 , 0 x28000000, 28 , 0 x28000000 },
{ 0 x2, 0 x15, 0 x1a, 0 , 0 x10000000, 5 , 0 x10000000 },
{ 0 x2, 0 x15, 0 x1b, 0 , 0 x10000000, 20 , 0 x10000000 },
{ 0 x2, 0 x15, 0 x1c, 0 , 0 x30000000, 14 , 0 x30000000 },
{ 0 x2, 0 x15, 0 x1d, 0 , 0 x30000000, 29 , 0 x30000000 },
{ 0 x2, 0 x0, 0 x0, 0 , 0 x0b000000, 0 , 0 x00000000 },
{ 0 x2, 0 x0, 0 x1, 0 , 0 x0b800000, 1 , 0 x00000000 },
{ 0 x2, 0 x1, 0 x0, 0 , 0 x20de0000, 3 , 0 x000e0000 },
{ 0 x2, 0 x1, 0 x1, 0 , 0 x210e0000, 7 , 0 x000e0000 },
{ 0 x2, 0 x1, 0 x2, 0 , 0 x20dc0000, 2 , 0 x000c0000 },
{ 0 x2, 0 x1, 0 x3, 0 , 0 x210c0000, 6 , 0 x000c0000 },
{ 0 x2, 0 x1, 0 x4, 0 , 0 x20d80000, 1 , 0 x00080000 },
{ 0 x2, 0 x1, 0 x5, 0 , 0 x21080000, 5 , 0 x00080000 },
{ 0 x2, 0 x1, 0 x6, 0 , 0 x20d00000, 0 , 0 x00000000 },
{ 0 x2, 0 x1, 0 x7, 0 , 0 x21000000, 4 , 0 x00000000 },
{ 0 x2, 0 x2, 0 x0, 0 , 0 x0b040000, 0 , 0 x00000000 },
{ 0 x2, 0 x2, 0 x1, 0 , 0 x0b840000, 1 , 0 x00000000 },
{ 0 x2, 0 x3, 0 x0, 0 , 0 x0b230000, 0 , 0 x00000000 },
{ 0 x2, 0 x3, 0 x1, 0 , 0 x0ba30000, 1 , 0 x00000000 },
{ 0 x2, 0 x4, 0 x0, 0 , 0 x0b050000, 0 , 0 x00000000 },
{ 0 x2, 0 x4, 0 x1, 0 , 0 x0b850000, 1 , 0 x00000000 },
{ 0 x2, 0 x5, 0 x0, 0 , 0 x0b060000, 0 , 0 x00000000 },
{ 0 x2, 0 x5, 0 x1, 0 , 0 x0b070000, 1 , 0 x00010000 },
{ 0 x2, 0 x5, 0 x2, 0 , 0 x0b080000, 2 , 0 x00020000 },
{ 0 x2, 0 x5, 0 x3, 0 , 0 x0b090000, 3 , 0 x00030000 },
{ 0 x2, 0 x5, 0 x4, 0 , 0 x0b0a0000, 4 , 0 x00040000 },
{ 0 x2, 0 x5, 0 x5, 0 , 0 x0b0b0000, 5 , 0 x00050000 },
{ 0 x2, 0 x5, 0 x6, 0 , 0 x0b0c0000, 6 , 0 x00060000 },
{ 0 x2, 0 x5, 0 x7, 0 , 0 x0b0d0000, 7 , 0 x00070000 },
{ 0 x2, 0 x5, 0 x8, 0 , 0 x0b0e0000, 8 , 0 x00080000 },
{ 0 x2, 0 x5, 0 x9, 0 , 0 x0b860000, 9 , 0 x00000000 },
{ 0 x2, 0 x5, 0 xa, 0 , 0 x0b870000, 10 , 0 x00010000 },
{ 0 x2, 0 x5, 0 xb, 0 , 0 x0b880000, 11 , 0 x00020000 },
{ 0 x2, 0 x5, 0 xc, 0 , 0 x0b890000, 12 , 0 x00030000 },
{ 0 x2, 0 x5, 0 xd, 0 , 0 x0b8a0000, 13 , 0 x00040000 },
{ 0 x2, 0 x5, 0 xe, 0 , 0 x0b8b0000, 14 , 0 x00050000 },
{ 0 x2, 0 x5, 0 xf, 0 , 0 x0b8c0000, 15 , 0 x00060000 },
{ 0 x2, 0 x5, 0 x10, 0 , 0 x0b8d0000, 16 , 0 x00070000 },
{ 0 x2, 0 x5, 0 x11, 0 , 0 x0b8e0000, 17 , 0 x00080000 },
{ 0 x2, 0 x6, 0 x0, 0 , 0 x0b650000, 0 , 0 x00000000 },
{ 0 x2, 0 x6, 0 x1, 0 , 0 x0be50000, 1 , 0 x00000000 },
{ 0 x2, 0 x7, 0 x0, 0 , 0 x20df0000, 0 , 0 x00000000 },
{ 0 x2, 0 x7, 0 x1, 0 , 0 x210f0000, 1 , 0 x00000000 },
{ 0 x2, 0 x8, 0 x0, 0 , 0 x0b3e0000, 0 , 0 x00000000 },
{ 0 x2, 0 x8, 0 x1, 0 , 0 x0bbe0000, 1 , 0 x00000000 },
{ 0 x2, 0 x9, 0 x0, 0 , 0 x0b3d0000, 0 , 0 x00000000 },
{ 0 x2, 0 x9, 0 x1, 0 , 0 x0bbd0000, 1 , 0 x00000000 },
{ 0 x2, 0 xa, 0 x0, 0 , 0 x0b1e0000, 0 , 0 x00000000 },
{ 0 x2, 0 xa, 0 x1, 0 , 0 x0b9e0000, 1 , 0 x00000000 },
{ 0 x2, 0 xb, 0 x0, 0 , 0 x0b150000, 0 , 0 x00000000 },
{ 0 x2, 0 xb, 0 x1, 0 , 0 x0b160000, 1 , 0 x00010000 },
{ 0 x2, 0 xb, 0 x2, 0 , 0 x0b170000, 2 , 0 x00020000 },
{ 0 x2, 0 xb, 0 x3, 0 , 0 x0b180000, 3 , 0 x00030000 },
{ 0 x2, 0 xb, 0 x4, 0 , 0 x0b190000, 4 , 0 x00040000 },
{ 0 x2, 0 xb, 0 x5, 0 , 0 x0b1a0000, 5 , 0 x00050000 },
{ 0 x2, 0 xb, 0 x6, 0 , 0 x0b1b0000, 6 , 0 x00060000 },
{ 0 x2, 0 xb, 0 x7, 0 , 0 x0b1c0000, 7 , 0 x00070000 },
{ 0 x2, 0 xb, 0 x8, 0 , 0 x0b1d0000, 8 , 0 x00080000 },
{ 0 x2, 0 xb, 0 x9, 0 , 0 x0b950000, 9 , 0 x00000000 },
{ 0 x2, 0 xb, 0 xa, 0 , 0 x0b960000, 10 , 0 x00010000 },
{ 0 x2, 0 xb, 0 xb, 0 , 0 x0b970000, 11 , 0 x00020000 },
{ 0 x2, 0 xb, 0 xc, 0 , 0 x0b980000, 12 , 0 x00030000 },
{ 0 x2, 0 xb, 0 xd, 0 , 0 x0b990000, 13 , 0 x00040000 },
{ 0 x2, 0 xb, 0 xe, 0 , 0 x0b9a0000, 14 , 0 x00050000 },
{ 0 x2, 0 xb, 0 xf, 0 , 0 x0b9b0000, 15 , 0 x00060000 },
{ 0 x2, 0 xb, 0 x10, 0 , 0 x0b9c0000, 16 , 0 x00070000 },
{ 0 x2, 0 xb, 0 x11, 0 , 0 x0b9d0000, 17 , 0 x00080000 },
{ 0 x2, 0 xc, 0 x0, 0 , 0 x0b660000, 0 , 0 x00000000 },
{ 0 x2, 0 xc, 0 x1, 0 , 0 x0be60000, 1 , 0 x00000000 },
{ 0 x2, 0 xd, 0 x0, 0 , 0 x0b1f0000, 0 , 0 x00000000 },
{ 0 x2, 0 xd, 0 x1, 0 , 0 x0b200000, 1 , 0 x00010000 },
{ 0 x2, 0 xd, 0 x2, 0 , 0 x0b210000, 2 , 0 x00020000 },
{ 0 x2, 0 xd, 0 x3, 0 , 0 x0b220000, 3 , 0 x00030000 },
{ 0 x2, 0 xd, 0 x4, 0 , 0 x0b9f0000, 4 , 0 x00000000 },
{ 0 x2, 0 xd, 0 x5, 0 , 0 x0ba00000, 5 , 0 x00010000 },
{ 0 x2, 0 xd, 0 x6, 0 , 0 x0ba10000, 6 , 0 x00020000 },
{ 0 x2, 0 xd, 0 x7, 0 , 0 x0ba20000, 7 , 0 x00030000 },
{ 0 x2, 0 xe, 0 x0, 0 , 0 x0b0f0000, 0 , 0 x00000000 },
{ 0 x2, 0 xe, 0 x1, 0 , 0 x0b100000, 1 , 0 x00010000 },
{ 0 x2, 0 xe, 0 x2, 0 , 0 x0b110000, 2 , 0 x00020000 },
{ 0 x2, 0 xe, 0 x3, 0 , 0 x0b120000, 3 , 0 x00030000 },
{ 0 x2, 0 xe, 0 x4, 0 , 0 x0b130000, 4 , 0 x00040000 },
{ 0 x2, 0 xe, 0 x5, 0 , 0 x0b140000, 5 , 0 x00050000 },
{ 0 x2, 0 xe, 0 x6, 0 , 0 x0b8f0000, 6 , 0 x00000000 },
{ 0 x2, 0 xe, 0 x7, 0 , 0 x0b900000, 7 , 0 x00010000 },
{ 0 x2, 0 xe, 0 x8, 0 , 0 x0b910000, 8 , 0 x00020000 },
{ 0 x2, 0 xe, 0 x9, 0 , 0 x0b920000, 9 , 0 x00030000 },
{ 0 x2, 0 xe, 0 xa, 0 , 0 x0b930000, 10 , 0 x00040000 },
{ 0 x2, 0 xe, 0 xb, 0 , 0 x0b940000, 11 , 0 x00050000 },
{ 0 x2, 0 x10, 0 x0, 0 , 0 x0b240000, 0 , 0 x00000000 },
{ 0 x2, 0 x10, 0 x1, 0 , 0 x0ba40000, 1 , 0 x00000000 },
{ 0 x2, 0 x11, 0 x0, 0 , 0 x0b020000, 0 , 0 x00000000 },
{ 0 x2, 0 x11, 0 x1, 0 , 0 x0b820000, 1 , 0 x00000000 },
{ 0 x2, 0 x12, 0 x0, 0 , 0 x0b030000, 0 , 0 x00000000 },
{ 0 x2, 0 x12, 0 x1, 0 , 0 x0b830000, 1 , 0 x00000000 },
{ 0 x2, 0 x17, 0 x0, 0 , 0 x0b640000, 0 , 0 x00000000 },
{ 0 x2, 0 x17, 0 x1, 0 , 0 x0be40000, 1 , 0 x00000000 },
{ 0 x2, 0 x18, 0 x0, 0 , 0 x0b600000, 0 , 0 x00000000 },
{ 0 x2, 0 x18, 0 x1, 0 , 0 x0be00000, 1 , 0 x00000000 },
{ 0 x2, 0 x18, 0 x2, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x2, 0 x18, 0 x3, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x14, 0 x0, 0 , 0 x40000000, 0 , 0 x40000000 },
{ 0 x3, 0 x14, 0 x1, 1 , 0 x80000000, 1 , 0 x80000000 },
{ 0 x3, 0 x16, 0 x0, 2 , 0 x0b400000, 0 , 0 x0b400000 },
{ 0 x3, 0 x16, 0 x1, 2 , 0 x0bc00000, 1 , 0 x0bc00000 },
{ 0 x3, 0 x16, 0 x2, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x3, 0 x16, 0 x3, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x4, 0 x15, 0 x0, 0 , 0 x20c00000, 8 , 0 x20c00000 },
{ 0 x4, 0 x15, 0 x1, 0 , 0 x21100000, 22 , 0 x21100000 },
{ 0 x4, 0 x15, 0 x2, 0 , 0 x20e00000, 9 , 0 x20e00000 },
{ 0 x4, 0 x15, 0 x3, 0 , 0 x21200000, 23 , 0 x21200000 },
{ 0 x4, 0 x15, 0 x4, 0 , 0 x20800000, 7 , 0 x20800000 },
{ 0 x4, 0 x15, 0 x5, 0 , 0 x21400000, 24 , 0 x21400000 },
{ 0 x4, 0 x15, 0 x6, 0 , 0 x0b000000, 18 , 0 x0b000000 },
{ 0 x4, 0 x15, 0 x7, 0 , 0 x0b800000, 3 , 0 x0b800000 },
{ 0 x4, 0 x15, 0 x8, 0 , 0 x20000000, 6 , 0 x20000000 },
{ 0 x4, 0 x15, 0 x9, 0 , 0 x21800000, 25 , 0 x21800000 },
{ 0 x4, 0 x15, 0 xa, 0 , 0 x0a000000, 2 , 0 x0a000000 },
{ 0 x4, 0 x15, 0 xb, 0 , 0 x0a000000, 17 , 0 x0a000000 },
{ 0 x4, 0 x15, 0 xc, 0 , 0 x20000000, 21 , 0 x20000000 },
{ 0 x4, 0 x15, 0 xd, 0 , 0 x21000000, 10 , 0 x21000000 },
{ 0 x4, 0 x15, 0 xe, 0 , 0 x08000000, 1 , 0 x08000000 },
{ 0 x4, 0 x15, 0 xf, 0 , 0 x08000000, 16 , 0 x08000000 },
{ 0 x4, 0 x15, 0 x10, 0 , 0 x22000000, 11 , 0 x22000000 },
{ 0 x4, 0 x15, 0 x11, 0 , 0 x22000000, 26 , 0 x22000000 },
{ 0 x4, 0 x15, 0 x12, 0 , 0 x0c000000, 4 , 0 x0c000000 },
{ 0 x4, 0 x15, 0 x13, 0 , 0 x0c000000, 19 , 0 x0c000000 },
{ 0 x4, 0 x15, 0 x14, 0 , 0 x24000000, 12 , 0 x24000000 },
{ 0 x4, 0 x15, 0 x15, 0 , 0 x24000000, 27 , 0 x24000000 },
{ 0 x4, 0 x15, 0 x16, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x4, 0 x15, 0 x17, 0 , 0 x00000000, 15 , 0 x00000000 },
{ 0 x4, 0 x15, 0 x18, 0 , 0 x28000000, 13 , 0 x28000000 },
{ 0 x4, 0 x15, 0 x19, 0 , 0 x28000000, 28 , 0 x28000000 },
{ 0 x4, 0 x15, 0 x1a, 0 , 0 x10000000, 5 , 0 x10000000 },
{ 0 x4, 0 x15, 0 x1b, 0 , 0 x10000000, 20 , 0 x10000000 },
{ 0 x4, 0 x15, 0 x1c, 0 , 0 x30000000, 14 , 0 x30000000 },
{ 0 x4, 0 x15, 0 x1d, 0 , 0 x30000000, 29 , 0 x30000000 },
{ 0 x4, 0 x0, 0 x0, 0 , 0 x0b000000, 0 , 0 x00000000 },
{ 0 x4, 0 x0, 0 x1, 0 , 0 x0b800000, 1 , 0 x00000000 },
{ 0 x4, 0 x1, 0 x0, 0 , 0 x20de0000, 3 , 0 x000e0000 },
{ 0 x4, 0 x1, 0 x1, 0 , 0 x210e0000, 7 , 0 x000e0000 },
{ 0 x4, 0 x1, 0 x2, 0 , 0 x20dc0000, 2 , 0 x000c0000 },
{ 0 x4, 0 x1, 0 x3, 0 , 0 x210c0000, 6 , 0 x000c0000 },
{ 0 x4, 0 x1, 0 x4, 0 , 0 x20d80000, 1 , 0 x00080000 },
{ 0 x4, 0 x1, 0 x5, 0 , 0 x21080000, 5 , 0 x00080000 },
{ 0 x4, 0 x1, 0 x6, 0 , 0 x20d00000, 0 , 0 x00000000 },
{ 0 x4, 0 x1, 0 x7, 0 , 0 x21000000, 4 , 0 x00000000 },
{ 0 x4, 0 x2, 0 x0, 0 , 0 x0b040000, 0 , 0 x00000000 },
{ 0 x4, 0 x2, 0 x1, 0 , 0 x0b840000, 1 , 0 x00000000 },
{ 0 x4, 0 x3, 0 x0, 0 , 0 x0b230000, 0 , 0 x00000000 },
{ 0 x4, 0 x3, 0 x1, 0 , 0 x0ba30000, 1 , 0 x00000000 },
{ 0 x4, 0 x4, 0 x0, 0 , 0 x0b050000, 0 , 0 x00000000 },
{ 0 x4, 0 x4, 0 x1, 0 , 0 x0b850000, 1 , 0 x00000000 },
{ 0 x4, 0 x5, 0 x0, 0 , 0 x0b060000, 0 , 0 x00000000 },
{ 0 x4, 0 x5, 0 x1, 0 , 0 x0b070000, 1 , 0 x00010000 },
{ 0 x4, 0 x5, 0 x2, 0 , 0 x0b080000, 2 , 0 x00020000 },
{ 0 x4, 0 x5, 0 x3, 0 , 0 x0b090000, 3 , 0 x00030000 },
{ 0 x4, 0 x5, 0 x4, 0 , 0 x0b0a0000, 4 , 0 x00040000 },
{ 0 x4, 0 x5, 0 x5, 0 , 0 x0b0b0000, 5 , 0 x00050000 },
{ 0 x4, 0 x5, 0 x6, 0 , 0 x0b0c0000, 6 , 0 x00060000 },
{ 0 x4, 0 x5, 0 x7, 0 , 0 x0b0d0000, 7 , 0 x00070000 },
{ 0 x4, 0 x5, 0 x8, 0 , 0 x0b0e0000, 8 , 0 x00080000 },
{ 0 x4, 0 x5, 0 x9, 0 , 0 x0b860000, 9 , 0 x00000000 },
{ 0 x4, 0 x5, 0 xa, 0 , 0 x0b870000, 10 , 0 x00010000 },
{ 0 x4, 0 x5, 0 xb, 0 , 0 x0b880000, 11 , 0 x00020000 },
{ 0 x4, 0 x5, 0 xc, 0 , 0 x0b890000, 12 , 0 x00030000 },
{ 0 x4, 0 x5, 0 xd, 0 , 0 x0b8a0000, 13 , 0 x00040000 },
{ 0 x4, 0 x5, 0 xe, 0 , 0 x0b8b0000, 14 , 0 x00050000 },
{ 0 x4, 0 x5, 0 xf, 0 , 0 x0b8c0000, 15 , 0 x00060000 },
{ 0 x4, 0 x5, 0 x10, 0 , 0 x0b8d0000, 16 , 0 x00070000 },
{ 0 x4, 0 x5, 0 x11, 0 , 0 x0b8e0000, 17 , 0 x00080000 },
{ 0 x4, 0 x6, 0 x0, 0 , 0 x0b650000, 0 , 0 x00000000 },
{ 0 x4, 0 x6, 0 x1, 0 , 0 x0be50000, 1 , 0 x00000000 },
{ 0 x4, 0 x7, 0 x0, 0 , 0 x20df0000, 0 , 0 x00000000 },
{ 0 x4, 0 x7, 0 x1, 0 , 0 x210f0000, 1 , 0 x00000000 },
{ 0 x4, 0 x8, 0 x0, 0 , 0 x0b3e0000, 0 , 0 x00000000 },
{ 0 x4, 0 x8, 0 x1, 0 , 0 x0bbe0000, 1 , 0 x00000000 },
{ 0 x4, 0 x9, 0 x0, 0 , 0 x0b3d0000, 0 , 0 x00000000 },
{ 0 x4, 0 x9, 0 x1, 0 , 0 x0bbd0000, 1 , 0 x00000000 },
{ 0 x4, 0 xa, 0 x0, 0 , 0 x0b1e0000, 0 , 0 x00000000 },
{ 0 x4, 0 xa, 0 x1, 0 , 0 x0b9e0000, 1 , 0 x00000000 },
{ 0 x4, 0 xb, 0 x0, 0 , 0 x0b150000, 0 , 0 x00000000 },
{ 0 x4, 0 xb, 0 x1, 0 , 0 x0b160000, 1 , 0 x00010000 },
{ 0 x4, 0 xb, 0 x2, 0 , 0 x0b170000, 2 , 0 x00020000 },
{ 0 x4, 0 xb, 0 x3, 0 , 0 x0b180000, 3 , 0 x00030000 },
{ 0 x4, 0 xb, 0 x4, 0 , 0 x0b190000, 4 , 0 x00040000 },
{ 0 x4, 0 xb, 0 x5, 0 , 0 x0b1a0000, 5 , 0 x00050000 },
{ 0 x4, 0 xb, 0 x6, 0 , 0 x0b1b0000, 6 , 0 x00060000 },
{ 0 x4, 0 xb, 0 x7, 0 , 0 x0b1c0000, 7 , 0 x00070000 },
{ 0 x4, 0 xb, 0 x8, 0 , 0 x0b1d0000, 8 , 0 x00080000 },
{ 0 x4, 0 xb, 0 x9, 0 , 0 x0b950000, 9 , 0 x00000000 },
{ 0 x4, 0 xb, 0 xa, 0 , 0 x0b960000, 10 , 0 x00010000 },
{ 0 x4, 0 xb, 0 xb, 0 , 0 x0b970000, 11 , 0 x00020000 },
{ 0 x4, 0 xb, 0 xc, 0 , 0 x0b980000, 12 , 0 x00030000 },
{ 0 x4, 0 xb, 0 xd, 0 , 0 x0b990000, 13 , 0 x00040000 },
{ 0 x4, 0 xb, 0 xe, 0 , 0 x0b9a0000, 14 , 0 x00050000 },
{ 0 x4, 0 xb, 0 xf, 0 , 0 x0b9b0000, 15 , 0 x00060000 },
{ 0 x4, 0 xb, 0 x10, 0 , 0 x0b9c0000, 16 , 0 x00070000 },
{ 0 x4, 0 xb, 0 x11, 0 , 0 x0b9d0000, 17 , 0 x00080000 },
{ 0 x4, 0 xc, 0 x0, 0 , 0 x0b660000, 0 , 0 x00000000 },
{ 0 x4, 0 xc, 0 x1, 0 , 0 x0be60000, 1 , 0 x00000000 },
{ 0 x4, 0 xd, 0 x0, 0 , 0 x0b1f0000, 0 , 0 x00000000 },
{ 0 x4, 0 xd, 0 x1, 0 , 0 x0b200000, 1 , 0 x00010000 },
{ 0 x4, 0 xd, 0 x2, 0 , 0 x0b210000, 2 , 0 x00020000 },
{ 0 x4, 0 xd, 0 x3, 0 , 0 x0b220000, 3 , 0 x00030000 },
{ 0 x4, 0 xd, 0 x4, 0 , 0 x0b9f0000, 4 , 0 x00000000 },
{ 0 x4, 0 xd, 0 x5, 0 , 0 x0ba00000, 5 , 0 x00010000 },
{ 0 x4, 0 xd, 0 x6, 0 , 0 x0ba10000, 6 , 0 x00020000 },
{ 0 x4, 0 xd, 0 x7, 0 , 0 x0ba20000, 7 , 0 x00030000 },
{ 0 x4, 0 xe, 0 x0, 0 , 0 x0b0f0000, 0 , 0 x00000000 },
{ 0 x4, 0 xe, 0 x1, 0 , 0 x0b100000, 1 , 0 x00010000 },
{ 0 x4, 0 xe, 0 x2, 0 , 0 x0b110000, 2 , 0 x00020000 },
{ 0 x4, 0 xe, 0 x3, 0 , 0 x0b120000, 3 , 0 x00030000 },
{ 0 x4, 0 xe, 0 x4, 0 , 0 x0b130000, 4 , 0 x00040000 },
{ 0 x4, 0 xe, 0 x5, 0 , 0 x0b140000, 5 , 0 x00050000 },
{ 0 x4, 0 xe, 0 x6, 0 , 0 x0b8f0000, 6 , 0 x00000000 },
{ 0 x4, 0 xe, 0 x7, 0 , 0 x0b900000, 7 , 0 x00010000 },
{ 0 x4, 0 xe, 0 x8, 0 , 0 x0b910000, 8 , 0 x00020000 },
{ 0 x4, 0 xe, 0 x9, 0 , 0 x0b920000, 9 , 0 x00030000 },
{ 0 x4, 0 xe, 0 xa, 0 , 0 x0b930000, 10 , 0 x00040000 },
{ 0 x4, 0 xe, 0 xb, 0 , 0 x0b940000, 11 , 0 x00050000 },
{ 0 x4, 0 x10, 0 x0, 0 , 0 x0b240000, 0 , 0 x00000000 },
{ 0 x4, 0 x10, 0 x1, 0 , 0 x0ba40000, 1 , 0 x00000000 },
{ 0 x4, 0 x11, 0 x0, 0 , 0 x0b020000, 0 , 0 x00000000 },
{ 0 x4, 0 x11, 0 x1, 0 , 0 x0b820000, 1 , 0 x00000000 },
{ 0 x4, 0 x12, 0 x0, 0 , 0 x0b030000, 0 , 0 x00000000 },
{ 0 x4, 0 x12, 0 x1, 0 , 0 x0b830000, 1 , 0 x00000000 },
{ 0 x4, 0 x17, 0 x0, 0 , 0 x0b640000, 0 , 0 x00000000 },
{ 0 x4, 0 x17, 0 x1, 0 , 0 x0be40000, 1 , 0 x00000000 },
{ 0 x4, 0 x18, 0 x0, 0 , 0 x0b600000, 0 , 0 x00000000 },
{ 0 x4, 0 x18, 0 x1, 0 , 0 x0be00000, 1 , 0 x00000000 },
{ 0 x4, 0 x18, 0 x2, 0 , 0 x00000000, 0 , 0 x00000000 },
{ 0 x4, 0 x18, 0 x3, 0 , 0 x00000000, 0 , 0 x00000000 }
};
static void cbbcentralnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
{
info->initflow = FIELD_GET(CBB_NOC_INITFLOW, routeid);
info->targflow = FIELD_GET(CBB_NOC_TARGFLOW, routeid);
info->targ_subrange = FIELD_GET(CBB_NOC_TARG_SUBRANGE, routeid);
info->seqid = FIELD_GET(CBB_NOC_SEQID, routeid);
}
static void bpmpnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
{
info->initflow = FIELD_GET(BPMP_NOC_INITFLOW, routeid);
info->targflow = FIELD_GET(BPMP_NOC_TARGFLOW, routeid);
info->targ_subrange = FIELD_GET(BPMP_NOC_TARG_SUBRANGE, routeid);
info->seqid = FIELD_GET(BPMP_NOC_SEQID, routeid);
}
static void aonnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
{
info->initflow = FIELD_GET(AON_NOC_INITFLOW, routeid);
info->targflow = FIELD_GET(AON_NOC_TARGFLOW, routeid);
info->targ_subrange = FIELD_GET(AON_NOC_TARG_SUBRANGE, routeid);
info->seqid = FIELD_GET(AON_NOC_SEQID, routeid);
}
static void scenoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
{
info->initflow = FIELD_GET(SCE_NOC_INITFLOW, routeid);
info->targflow = FIELD_GET(SCE_NOC_TARGFLOW, routeid);
info->targ_subrange = FIELD_GET(SCE_NOC_TARG_SUBRANGE, routeid);
info->seqid = FIELD_GET(SCE_NOC_SEQID, routeid);
}
static void cbbcentralnoc_parse_userbits(struct tegra194_cbb_userbits *usrbits, u32 elog_5)
{
usrbits->axcache = FIELD_GET(CBB_NOC_AXCACHE, elog_5);
usrbits->non_mod = FIELD_GET(CBB_NOC_NON_MOD, elog_5);
usrbits->axprot = FIELD_GET(CBB_NOC_AXPROT, elog_5);
usrbits->falconsec = FIELD_GET(CBB_NOC_FALCONSEC, elog_5);
usrbits->grpsec = FIELD_GET(CBB_NOC_GRPSEC, elog_5);
usrbits->vqc = FIELD_GET(CBB_NOC_VQC, elog_5);
usrbits->mstr_id = FIELD_GET(CBB_NOC_MSTR_ID, elog_5) - 1 ;
usrbits->axi_id = FIELD_GET(CBB_NOC_AXI_ID, elog_5);
}
static void clusternoc_parse_userbits(struct tegra194_cbb_userbits *usrbits, u32 elog_5)
{
usrbits->axcache = FIELD_GET(CLUSTER_NOC_AXCACHE, elog_5);
usrbits->axprot = FIELD_GET(CLUSTER_NOC_AXCACHE, elog_5);
usrbits->falconsec = FIELD_GET(CLUSTER_NOC_FALCONSEC, elog_5);
usrbits->grpsec = FIELD_GET(CLUSTER_NOC_GRPSEC, elog_5);
usrbits->vqc = FIELD_GET(CLUSTER_NOC_VQC, elog_5);
usrbits->mstr_id = FIELD_GET(CLUSTER_NOC_MSTR_ID, elog_5) - 1 ;
}
static void tegra194_cbb_fault_enable(struct tegra_cbb *cbb)
{
struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
writel(1 , priv->regs + ERRLOGGER_0_FAULTEN_0);
writel(1 , priv->regs + ERRLOGGER_1_FAULTEN_0);
writel(1 , priv->regs + ERRLOGGER_2_FAULTEN_0);
}
static void tegra194_cbb_stall_enable(struct tegra_cbb *cbb)
{
struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
writel(1 , priv->regs + ERRLOGGER_0_STALLEN_0);
writel(1 , priv->regs + ERRLOGGER_1_STALLEN_0);
writel(1 , priv->regs + ERRLOGGER_2_STALLEN_0);
}
static void tegra194_cbb_error_clear(struct tegra_cbb *cbb)
{
struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
writel(1 , priv->regs + ERRLOGGER_0_ERRCLR_0);
writel(1 , priv->regs + ERRLOGGER_1_ERRCLR_0);
writel(1 , priv->regs + ERRLOGGER_2_ERRCLR_0);
dsb(sy);
}
static u32 tegra194_cbb_get_status(struct tegra_cbb *cbb)
{
struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
u32 value;
value = readl(priv->regs + ERRLOGGER_0_ERRVLD_0);
value |= (readl(priv->regs + ERRLOGGER_1_ERRVLD_0) << 1 );
value |= (readl(priv->regs + ERRLOGGER_2_ERRVLD_0) << 2 );
dsb(sy);
return value;
}
static u32 tegra194_axi2apb_status(void __iomem *addr)
{
u32 value;
value = readl(addr + DMAAPB_X_RAW_INTERRUPT_STATUS);
writel(0 xffffffff, addr + DMAAPB_X_RAW_INTERRUPT_STATUS);
return value;
}
static bool tegra194_axi2apb_fatal(struct seq_file *file, unsigned int bridge, u32 status)
{
bool is_fatal = true ;
size_t i;
for (i = 0 ; i < ARRAY_SIZE(tegra194_axi2apb_error); i++) {
if (status & BIT(i)) {
tegra_cbb_print_err(file, "\t AXI2APB_%d bridge error: %s\n" ,
bridge + 1 , tegra194_axi2apb_error[i]);
if (strstr(tegra194_axi2apb_error[i], "Firewall" ))
is_fatal = false ;
}
}
return is_fatal;
}
/*
* Fetch InitlocalAddress from NOC Aperture lookup table
* using Targflow, Targsubrange
*/
static u32 get_init_localaddress(const struct tegra194_cbb_aperture *info,
const struct tegra194_cbb_aperture *aper, unsigned int max)
{
unsigned int t_f = 0 , t_sr = 0 ;
u32 addr = 0 ;
for (t_f = 0 ; t_f < max; t_f++) {
if (aper[t_f].targflow == info->targflow) {
t_sr = t_f;
do {
if (aper[t_sr].targ_subrange == info->targ_subrange) {
addr = aper[t_sr].init_localaddress;
return addr;
}
if (t_sr >= max)
return 0 ;
t_sr++;
} while (aper[t_sr].targflow == aper[t_sr - 1 ].targflow);
t_f = t_sr;
}
}
return addr;
}
static void print_errlog5(struct seq_file *file, struct tegra194_cbb *cbb)
{
struct tegra194_cbb_userbits userbits;
cbb->noc->parse_userbits(&userbits, cbb->errlog5);
if (!strcmp(cbb->noc->name, "cbb-noc" )) {
tegra_cbb_print_err(file, "\t Non-Modify\t\t: %#x\n" , userbits.non_mod);
tegra_cbb_print_err(file, "\t AXI ID\t\t: %#x\n" , userbits.axi_id);
}
tegra_cbb_print_err(file, "\t Initiator ID\t\t: %s\n" ,
cbb->noc->initiator_id[userbits.mstr_id]);
tegra_cbb_print_err(file, "\t Security Group(GRPSEC): %#x\n" , userbits.grpsec);
tegra_cbb_print_cache(file, userbits.axcache);
tegra_cbb_print_prot(file, userbits.axprot);
tegra_cbb_print_err(file, "\t FALCONSEC\t\t: %#x\n" , userbits.falconsec);
tegra_cbb_print_err(file, "\t Virtual Queuing Channel(VQC): %#x\n" , userbits.vqc);
}
/*
* Fetch Base Address/InitlocalAddress from NOC aperture lookup table using TargFlow &
* Targ_subRange extracted from RouteId. Perform address reconstruction as below:
*
* Address = Base Address + (ErrLog3 + ErrLog4)
*/
static void
print_errlog3_4(struct seq_file *file, u32 errlog3, u32 errlog4,
const struct tegra194_cbb_aperture *info,
const struct tegra194_cbb_aperture *aperture, unsigned int max)
{
u64 addr = (u64)errlog4 << 32 | errlog3;
/*
* If errlog4[7] = "1", then it's a joker entry. Joker entries are a rare phenomenon and
* such addresses are not reliable. Debugging should be done using only the RouteId
* information.
*/
if (errlog4 & 0 x80)
tegra_cbb_print_err(file, "\t debug using RouteId alone as below address is a "
"joker entry and not reliable" );
addr += get_init_localaddress(info, aperture, max);
tegra_cbb_print_err(file, "\t Address accessed\t: %#llx\n" , addr);
}
/*
* Get RouteId from ErrLog1+ErrLog2 registers and fetch values of
* InitFlow, TargFlow, Targ_subRange and SeqId values from RouteId
*/
static void
print_errlog1_2(struct seq_file *file, struct tegra194_cbb *cbb,
struct tegra194_cbb_aperture *info)
{
u64 routeid = (u64)cbb->errlog2 << 32 | cbb->errlog1;
u32 seqid = 0 ;
tegra_cbb_print_err(file, "\t RouteId\t\t: %#llx\n" , routeid);
cbb->noc->parse_routeid(info, routeid);
tegra_cbb_print_err(file, "\t InitFlow\t\t: %s\n" ,
cbb->noc->routeid_initflow[info->initflow]);
tegra_cbb_print_err(file, "\t Targflow\t\t: %s\n" ,
cbb->noc->routeid_targflow[info->targflow]);
tegra_cbb_print_err(file, "\t TargSubRange\t\t: %d\n" , info->targ_subrange);
tegra_cbb_print_err(file, "\t SeqId\t\t\t: %d\n" , seqid);
}
/*
* Print transcation type, error code and description from ErrLog0 for all
* errors. For NOC target errors, all relevant error info is printed using
* ErrLog0 only. But additional information is printed for errors from
* APB targets because for them:
* - All errors are logged as SLV(target) errors due to APB having only single
* bit pslverr to report all errors.
* - Exact cause is printed by reading DMAAPB_X_RAW_INTERRUPT_STATUS register.
* - The driver prints information showing AXI2APB bridge and exact error
* only if there is error in any AXI2APB target.
* - There is still no way to disambiguate a DEC error from SLV error type.
*/
static bool print_errlog0(struct seq_file *file, struct tegra194_cbb *cbb)
{
struct tegra194_cbb_packet_header hdr;
bool is_fatal = true ;
hdr.lock = cbb->errlog0 & 0 x1;
hdr.opc = FIELD_GET(CBB_ERR_OPC, cbb->errlog0);
hdr.errcode = FIELD_GET(CBB_ERR_ERRCODE, cbb->errlog0);
hdr.len1 = FIELD_GET(CBB_ERR_LEN1, cbb->errlog0);
hdr.format = (cbb->errlog0 >> 31 );
tegra_cbb_print_err(file, "\t Transaction Type\t: %s\n" ,
tegra194_cbb_trantype[hdr.opc]);
tegra_cbb_print_err(file, "\t Error Code\t\t: %s\n" ,
tegra194_cbb_errors[hdr.errcode].code);
tegra_cbb_print_err(file, "\t Error Source\t\t: %s\n" ,
tegra194_cbb_errors[hdr.errcode].source);
tegra_cbb_print_err(file, "\t Error Description\t: %s\n" ,
tegra194_cbb_errors[hdr.errcode].desc);
/*
* Do not crash system for errors which are only notifications to indicate a transaction
* was not allowed to be attempted.
*/
if (!strcmp(tegra194_cbb_errors[hdr.errcode].code, "SEC" ) ||
!strcmp(tegra194_cbb_errors[hdr.errcode].code, "DEC" ) ||
!strcmp(tegra194_cbb_errors[hdr.errcode].code, "UNS" ) ||
!strcmp(tegra194_cbb_errors[hdr.errcode].code, "DISC" )) {
is_fatal = false ;
} else if (!strcmp(tegra194_cbb_errors[hdr.errcode].code, "SLV" ) &&
cbb->num_bridges > 0 ) {
unsigned int i;
u32 status;
/* For all SLV errors, read DMAAPB_X_RAW_INTERRUPT_STATUS
* register to get error status for all AXI2APB bridges.
* Print bridge details if a bit is set in a bridge's
* status register due to error in a APB target connected
* to that bridge. For other NOC targets, none of the status
* register will be set.
*/
for (i = 0 ; i < cbb->num_bridges; i++) {
status = tegra194_axi2apb_status(cbb->bridges[i].base);
if (status)
is_fatal = tegra194_axi2apb_fatal(file, i, status);
}
}
tegra_cbb_print_err(file, "\t Packet header Lock\t: %d\n" , hdr.lock);
tegra_cbb_print_err(file, "\t Packet header Len1\t: %d\n" , hdr.len1);
if (hdr.format)
tegra_cbb_print_err(file, "\t NOC protocol version\t: %s\n" ,
"version >= 2.7" );
else
tegra_cbb_print_err(file, "\t NOC protocol version\t: %s\n" ,
"version < 2.7" );
return is_fatal;
}
/*
* Print debug information about failed transaction using
* ErrLog registers of error loggger having ErrVld set
*/
static bool print_errloggerX_info(struct seq_file *file, struct tegra194_cbb *cbb,
int errloggerX)
{
struct tegra194_cbb_aperture info = { 0 , };
bool is_fatal = true ;
tegra_cbb_print_err(file, "\tError Logger\t\t: %d\n" , errloggerX);
if (errloggerX == 0 ) {
cbb->errlog0 = readl(cbb->regs + ERRLOGGER_0_ERRLOG0_0);
cbb->errlog1 = readl(cbb->regs + ERRLOGGER_0_ERRLOG1_0);
cbb->errlog2 = readl(cbb->regs + ERRLOGGER_0_RSVD_00_0);
cbb->errlog3 = readl(cbb->regs + ERRLOGGER_0_ERRLOG3_0);
cbb->errlog4 = readl(cbb->regs + ERRLOGGER_0_ERRLOG4_0);
cbb->errlog5 = readl(cbb->regs + ERRLOGGER_0_ERRLOG5_0);
} else if (errloggerX == 1 ) {
cbb->errlog0 = readl(cbb->regs + ERRLOGGER_1_ERRLOG0_0);
cbb->errlog1 = readl(cbb->regs + ERRLOGGER_1_ERRLOG1_0);
cbb->errlog2 = readl(cbb->regs + ERRLOGGER_1_RSVD_00_0);
cbb->errlog3 = readl(cbb->regs + ERRLOGGER_1_ERRLOG3_0);
cbb->errlog4 = readl(cbb->regs + ERRLOGGER_1_ERRLOG4_0);
cbb->errlog5 = readl(cbb->regs + ERRLOGGER_1_ERRLOG5_0);
} else if (errloggerX == 2 ) {
cbb->errlog0 = readl(cbb->regs + ERRLOGGER_2_ERRLOG0_0);
cbb->errlog1 = readl(cbb->regs + ERRLOGGER_2_ERRLOG1_0);
cbb->errlog2 = readl(cbb->regs + ERRLOGGER_2_RSVD_00_0);
cbb->errlog3 = readl(cbb->regs + ERRLOGGER_2_ERRLOG3_0);
cbb->errlog4 = readl(cbb->regs + ERRLOGGER_2_ERRLOG4_0);
cbb->errlog5 = readl(cbb->regs + ERRLOGGER_2_ERRLOG5_0);
}
tegra_cbb_print_err(file, "\tErrLog0\t\t\t: %#x\n" , cbb->errlog0);
is_fatal = print_errlog0(file, cbb);
tegra_cbb_print_err(file, "\tErrLog1\t\t\t: %#x\n" , cbb->errlog1);
tegra_cbb_print_err(file, "\tErrLog2\t\t\t: %#x\n" , cbb->errlog2);
print_errlog1_2(file, cbb, &info);
tegra_cbb_print_err(file, "\tErrLog3\t\t\t: %#x\n" , cbb->errlog3);
tegra_cbb_print_err(file, "\tErrLog4\t\t\t: %#x\n" , cbb->errlog4);
print_errlog3_4(file, cbb->errlog3, cbb->errlog4, &info, cbb->noc->noc_aperture,
cbb->noc->max_aperture);
tegra_cbb_print_err(file, "\tErrLog5\t\t\t: %#x\n" , cbb->errlog5);
if (cbb->errlog5)
print_errlog5(file, cbb);
return is_fatal;
}
static bool print_errlog(struct seq_file *file, struct tegra194_cbb *cbb, u32 errvld)
{
bool is_fatal = true ;
pr_crit("**************************************\n" );
pr_crit("CPU:%d, Error:%s\n" , smp_processor_id(), cbb->noc->name);
if (errvld & 0 x1)
is_fatal = print_errloggerX_info(file, cbb, 0 );
else if (errvld & 0 x2)
is_fatal = print_errloggerX_info(file, cbb, 1 );
else if (errvld & 0 x4)
is_fatal = print_errloggerX_info(file, cbb, 2 );
tegra_cbb_error_clear(&cbb->base);
tegra_cbb_print_err(file, "\t**************************************\n" );
return is_fatal;
}
#ifdef CONFIG_DEBUG_FS
static DEFINE_MUTEX(cbb_err_mutex);
static int tegra194_cbb_debugfs_show(struct tegra_cbb *cbb, struct seq_file *file, void *data)
{
struct tegra_cbb *noc;
mutex_lock(&cbb_err_mutex);
list_for_each_entry(noc, &cbb_list, node) {
struct tegra194_cbb *priv = to_tegra194_cbb(noc);
u32 status;
status = tegra_cbb_get_status(noc);
if (status)
print_errlog(file, priv, status);
}
mutex_unlock(&cbb_err_mutex);
return 0 ;
}
#endif
/*
* Handler for CBB errors from different initiators
*/
static irqreturn_t tegra194_cbb_err_isr(int irq, void *data)
{
bool is_inband_err = false , is_fatal = false ;
//struct tegra194_cbb *cbb = data;
struct tegra_cbb *noc;
unsigned long flags;
u8 mstr_id = 0 ;
spin_lock_irqsave(&cbb_lock, flags);
/* XXX only process interrupts for "cbb" instead of iterating over all NOCs? */
list_for_each_entry(noc, &cbb_list, node) {
struct tegra194_cbb *priv = to_tegra194_cbb(noc);
u32 status = 0 ;
status = tegra_cbb_get_status(noc);
if (status && ((irq == priv->sec_irq) || (irq == priv->nonsec_irq))) {
tegra_cbb_print_err(NULL, "CPU:%d, Error: %s@%llx, irq=%d\n" ,
smp_processor_id(), priv->noc->name, priv->res->start,
irq);
is_fatal = print_errlog(NULL, priv, status);
/*
* If illegal request is from CCPLEX(0x1) initiator
* and error is fatal then call BUG() to crash system.
*/
if (priv->noc->erd_mask_inband_err) {
mstr_id = FIELD_GET(CBB_NOC_MSTR_ID, priv->errlog5);
if (mstr_id == 0 x1)
is_inband_err = 1 ;
}
}
}
spin_unlock_irqrestore(&cbb_lock, flags);
if (is_inband_err) {
if (is_fatal)
BUG();
else
WARN(true , "Warning due to CBB Error\n" );
}
return IRQ_HANDLED;
}
/*
* Register handler for CBB_NONSECURE & CBB_SECURE interrupts
* for reporting CBB errors
*/
static int tegra194_cbb_interrupt_enable(struct tegra_cbb *cbb)
{
struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
struct device *dev = cbb->dev;
int err;
if (priv->sec_irq) {
err = devm_request_irq(dev, priv->sec_irq, tegra194_cbb_err_isr, 0 , dev_name(dev),
priv);
if (err) {
dev_err(dev, "failed to register interrupt %u: %d\n" , priv->sec_irq, err);
return err;
}
}
if (priv->nonsec_irq) {
err = devm_request_irq(dev, priv->nonsec_irq, tegra194_cbb_err_isr, 0 ,
dev_name(dev), priv);
if (err) {
dev_err(dev, "failed to register interrupt %u: %d\n" , priv->nonsec_irq,
err);
return err;
}
}
return 0 ;
}
static void tegra194_cbb_error_enable(struct tegra_cbb *cbb)
{
/*
* Set “StallEn=1” to enable queuing of error packets till
* first is served & cleared
*/
tegra_cbb_stall_enable(cbb);
/* set “FaultEn=1” to enable error reporting signal “Fault” */
tegra_cbb_fault_enable(cbb);
}
static const struct tegra_cbb_ops tegra194_cbb_ops = {
.get_status = tegra194_cbb_get_status,
.error_clear = tegra194_cbb_error_clear,
.fault_enable = tegra194_cbb_fault_enable,
.stall_enable = tegra194_cbb_stall_enable,
.error_enable = tegra194_cbb_error_enable,
.interrupt_enable = tegra194_cbb_interrupt_enable,
#ifdef CONFIG_DEBUG_FS
.debugfs_show = tegra194_cbb_debugfs_show,
#endif
};
static struct tegra194_cbb_noc_data tegra194_cbb_central_noc_data = {
.name = "cbb-noc" ,
.erd_mask_inband_err = true ,
.initiator_id = tegra194_initiator_id,
.noc_aperture = tegra194_cbbcentralnoc_apert_lookup,
.max_aperture = ARRAY_SIZE(tegra194_cbbcentralnoc_apert_lookup),
.routeid_initflow = tegra194_cbbcentralnoc_routeid_initflow,
.routeid_targflow = tegra194_cbbcentralnoc_routeid_targflow,
.parse_routeid = cbbcentralnoc_parse_routeid,
.parse_userbits = cbbcentralnoc_parse_userbits
};
static struct tegra194_cbb_noc_data tegra194_aon_noc_data = {
.name = "aon-noc" ,
.erd_mask_inband_err = false ,
.initiator_id = tegra194_initiator_id,
.noc_aperture = tegra194_aonnoc_aperture_lookup,
.max_aperture = ARRAY_SIZE(tegra194_aonnoc_aperture_lookup),
.routeid_initflow = tegra194_aonnoc_routeid_initflow,
.routeid_targflow = tegra194_aonnoc_routeid_targflow,
.parse_routeid = aonnoc_parse_routeid,
.parse_userbits = clusternoc_parse_userbits
};
static struct tegra194_cbb_noc_data tegra194_bpmp_noc_data = {
.name = "bpmp-noc" ,
.erd_mask_inband_err = false ,
.initiator_id = tegra194_initiator_id,
.noc_aperture = tegra194_bpmpnoc_apert_lookup,
.max_aperture = ARRAY_SIZE(tegra194_bpmpnoc_apert_lookup),
.routeid_initflow = tegra194_bpmpnoc_routeid_initflow,
.routeid_targflow = tegra194_bpmpnoc_routeid_targflow,
.parse_routeid = bpmpnoc_parse_routeid,
.parse_userbits = clusternoc_parse_userbits
};
static struct tegra194_cbb_noc_data tegra194_rce_noc_data = {
.name = "rce-noc" ,
.erd_mask_inband_err = false ,
.initiator_id = tegra194_initiator_id,
.noc_aperture = tegra194_scenoc_apert_lookup,
.max_aperture = ARRAY_SIZE(tegra194_scenoc_apert_lookup),
.routeid_initflow = tegra194_scenoc_routeid_initflow,
.routeid_targflow = tegra194_scenoc_routeid_targflow,
.parse_routeid = scenoc_parse_routeid,
.parse_userbits = clusternoc_parse_userbits
};
static struct tegra194_cbb_noc_data tegra194_sce_noc_data = {
.name = "sce-noc" ,
.erd_mask_inband_err = false ,
.initiator_id = tegra194_initiator_id,
.noc_aperture = tegra194_scenoc_apert_lookup,
.max_aperture = ARRAY_SIZE(tegra194_scenoc_apert_lookup),
.routeid_initflow = tegra194_scenoc_routeid_initflow,
.routeid_targflow = tegra194_scenoc_routeid_targflow,
.parse_routeid = scenoc_parse_routeid,
.parse_userbits = clusternoc_parse_userbits
};
static const struct of_device_id tegra194_cbb_match[] = {
{ .compatible = "nvidia,tegra194-cbb-noc" , .data = &tegra194_cbb_central_noc_data },
{ .compatible = "nvidia,tegra194-aon-noc" , .data = &tegra194_aon_noc_data },
{ .compatible = "nvidia,tegra194-bpmp-noc" , .data = &tegra194_bpmp_noc_data },
{ .compatible = "nvidia,tegra194-rce-noc" , .data = &tegra194_rce_noc_data },
{ .compatible = "nvidia,tegra194-sce-noc" , .data = &tegra194_sce_noc_data },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, tegra194_cbb_match);
static int tegra194_cbb_get_bridges(struct tegra194_cbb *cbb, struct device_node *np)
{
struct tegra_cbb *entry;
unsigned long flags;
unsigned int i;
int err;
spin_lock_irqsave(&cbb_lock, flags);
list_for_each_entry(entry, &cbb_list, node) {
struct tegra194_cbb *priv = to_tegra194_cbb(entry);
if (priv->bridges) {
cbb->num_bridges = priv->num_bridges;
cbb->bridges = priv->bridges;
break ;
}
}
spin_unlock_irqrestore(&cbb_lock, flags);
if (!cbb->bridges) {
cbb->num_bridges = of_address_count(np);
cbb->bridges = devm_kcalloc(cbb->base.dev, cbb->num_bridges,
sizeof (*cbb->bridges), GFP_KERNEL);
if (!cbb->bridges)
return -ENOMEM;
for (i = 0 ; i < cbb->num_bridges; i++) {
err = of_address_to_resource(np, i, &cbb->bridges[i].res);
if (err < 0 )
return err;
cbb->bridges[i].base = devm_ioremap_resource(cbb->base.dev,
&cbb->bridges[i].res);
if (IS_ERR(cbb->bridges[i].base))
return PTR_ERR(cbb->bridges[i].base);
}
}
if (cbb->num_bridges > 0 ) {
dev_dbg(cbb->base.dev, "AXI2APB bridge info present:\n" );
for (i = 0 ; i < cbb->num_bridges; i++)
dev_dbg(cbb->base.dev, " %u: %pR\n" , i, &cbb->bridges[i].res);
}
return 0 ;
}
static int tegra194_cbb_probe(struct platform_device *pdev)
{
const struct tegra194_cbb_noc_data *noc;
struct tegra194_cbb *cbb;
struct device_node *np;
unsigned long flags;
int err;
noc = of_device_get_match_data(&pdev->dev);
if (noc->erd_mask_inband_err) {
/*
* Set Error Response Disable(ERD) bit to mask SError/inband
* error and only trigger interrupts for illegal access from
* CCPLEX initiator.
*/
err = tegra194_miscreg_mask_serror();
if (err) {
dev_err(&pdev->dev, "couldn't mask inband errors\n" );
return err;
}
}
cbb = devm_kzalloc(&pdev->dev, sizeof (*cbb), GFP_KERNEL);
if (!cbb)
return -ENOMEM;
INIT_LIST_HEAD(&cbb->base.node);
cbb->base.ops = &tegra194_cbb_ops;
cbb->base.dev = &pdev->dev;
cbb->noc = noc;
cbb->regs = devm_platform_get_and_ioremap_resource(pdev, 0 , &cbb->res);
if (IS_ERR(cbb->regs))
return PTR_ERR(cbb->regs);
err = tegra_cbb_get_irq(pdev, &cbb->nonsec_irq, &cbb->sec_irq);
if (err)
return err;
np = of_parse_phandle(pdev->dev.of_node, "nvidia,axi2apb" , 0 );
if (np) {
err = tegra194_cbb_get_bridges(cbb, np);
of_node_put(np);
if (err < 0 )
return err;
}
platform_set_drvdata(pdev, cbb);
spin_lock_irqsave(&cbb_lock, flags);
list_add(&cbb->base.node, &cbb_list);
spin_unlock_irqrestore(&cbb_lock, flags);
return tegra_cbb_register(&cbb->base);
}
static void tegra194_cbb_remove(struct platform_device *pdev)
{
struct tegra194_cbb *cbb = platform_get_drvdata(pdev);
struct tegra_cbb *noc, *tmp;
unsigned long flags;
spin_lock_irqsave(&cbb_lock, flags);
list_for_each_entry_safe(noc, tmp, &cbb_list, node) {
struct tegra194_cbb *priv = to_tegra194_cbb(noc);
if (cbb->res->start == priv->res->start) {
list_del(&noc->node);
break ;
}
}
spin_unlock_irqrestore(&cbb_lock, flags);
}
static int __maybe_unused tegra194_cbb_resume_noirq(struct device *dev)
{
struct tegra194_cbb *cbb = dev_get_drvdata(dev);
tegra194_cbb_error_enable(&cbb->base);
dsb(sy);
dev_dbg(dev, "%s resumed\n" , cbb->noc->name);
return 0 ;
}
static const struct dev_pm_ops tegra194_cbb_pm = {
SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(NULL, tegra194_cbb_resume_noirq)
};
static struct platform_driver tegra194_cbb_driver = {
.probe = tegra194_cbb_probe,
.remove = tegra194_cbb_remove,
.driver = {
.name = "tegra194-cbb" ,
.of_match_table = of_match_ptr(tegra194_cbb_match),
.pm = &tegra194_cbb_pm,
},
};
static int __init tegra194_cbb_init(void )
{
return platform_driver_register(&tegra194_cbb_driver);
}
pure_initcall(tegra194_cbb_init);
static void __exit tegra194_cbb_exit(void )
{
platform_driver_unregister(&tegra194_cbb_driver);
}
module_exit(tegra194_cbb_exit);
MODULE_AUTHOR("Sumit Gupta <sumitg@nvidia.com>" );
MODULE_DESCRIPTION("Control Backbone error handling driver for Tegra194" );
Messung V0.5 in Prozent C=96 H=93 G=94