// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2021-2022, 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_device.h>
#include <linux/platform_device.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/version.h>
#include <soc/tegra/fuse.h>
#include <soc/tegra/tegra-cbb.h>

#define ERRLOGGER_0_ID_COREID_0     0x00000000
#define ERRLOGGER_0_ID_REVISIONID_0 0x00000004
#define ERRLOGGER_0_FAULTEN_0       0x00000008
#define ERRLOGGER_0_ERRVLD_0        0x0000000c
#define ERRLOGGER_0_ERRCLR_0        0x00000010
#define ERRLOGGER_0_ERRLOG0_0       0x00000014
#define ERRLOGGER_0_ERRLOG1_0       0x00000018
#define ERRLOGGER_0_RSVD_00_0       0x0000001c
#define ERRLOGGER_0_ERRLOG3_0       0x00000020
#define ERRLOGGER_0_ERRLOG4_0       0x00000024
#define ERRLOGGER_0_ERRLOG5_0       0x00000028
#define ERRLOGGER_0_STALLEN_0       0x00000038

#define ERRLOGGER_1_ID_COREID_0     0x00000080
#define ERRLOGGER_1_ID_REVISIONID_0 0x00000084
#define ERRLOGGER_1_FAULTEN_0       0x00000088
#define ERRLOGGER_1_ERRVLD_0        0x0000008c
#define ERRLOGGER_1_ERRCLR_0        0x00000090
#define ERRLOGGER_1_ERRLOG0_0       0x00000094
#define ERRLOGGER_1_ERRLOG1_0       0x00000098
#define ERRLOGGER_1_RSVD_00_0       0x0000009c
#define ERRLOGGER_1_ERRLOG3_0       0x000000a0
#define ERRLOGGER_1_ERRLOG4_0       0x000000a4
#define ERRLOGGER_1_ERRLOG5_0       0x000000a8
#define ERRLOGGER_1_STALLEN_0       0x000000b8

#define ERRLOGGER_2_ID_COREID_0     0x00000100
#define ERRLOGGER_2_ID_REVISIONID_0 0x00000104
#define ERRLOGGER_2_FAULTEN_0       0x00000108
#define ERRLOGGER_2_ERRVLD_0        0x0000010c
#define ERRLOGGER_2_ERRCLR_0        0x00000110
#define ERRLOGGER_2_ERRLOG0_0       0x00000114
#define ERRLOGGER_2_ERRLOG1_0       0x00000118
#define ERRLOGGER_2_RSVD_00_0       0x0000011c
#define ERRLOGGER_2_ERRLOG3_0       0x00000120
#define ERRLOGGER_2_ERRLOG4_0       0x00000124
#define ERRLOGGER_2_ERRLOG5_0       0x00000128
#define ERRLOGGER_2_STALLEN_0       0x00000138

#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 0x2ec

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 *master_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_master_id[] = {
	[0x0] = "CCPLEX",
	[0x1] = "CCPLEX_DPMU",
	[0x2] = "BPMP",
	[0x3] = "AON",
	[0x4] = "SCE",
	[0x5] = "GPCDMA_PERIPHERAL",
	[0x6] = "TSECA",
	[0x7] = "TSECB",
	[0x8] = "JTAGM_DFT",
	[0x9] = "CORESIGHT_AXIAP",
	[0xa] = "APE",
	[0xb] = "PEATR",
	[0xc] = "NVDEC",
	[0xd] = "RCE",
	[0xe] = "NVDEC1"
};

static const struct tegra_cbb_error tegra194_cbb_errors[] = {
	{
		.code = "SLV",
		.source = "Target",
		.desc = "Target error detected by CBB slave"
	}, {
		.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[] = {
	[0x0] = "aon_p2ps/I/aon",
	[0x1] = "ape_p2ps/I/ape_p2ps",
	[0x2] = "bpmp_p2ps/I/bpmp_p2ps",
	[0x3] = "ccroc_p2ps/I/ccroc_p2ps",
	[0x4] = "csite_p2ps/I/0",
	[0x5] = "gpcdma_mmio_p2ps/I/0",
	[0x6] = "jtag_p2ps/I/0",
	[0x7] = "nvdec1_p2ps/I/0",
	[0x8] = "nvdec_p2ps/I/0",
	[0x9] = "rce_p2ps/I/rce_p2ps",
	[0xa] = "sce_p2ps/I/sce_p2ps",
	[0xb] = "tseca_p2ps/I/0",
	[0xc] = "tsecb_p2ps/I/0",
	[0xd] = "RESERVED",
	[0xe] = "RESERVED",
	[0xf] = "RESERVED"
};

static const char * const tegra194_cbbcentralnoc_routeid_targflow[] = {
	[0x0] = "SVC/T/intreg",
	[0x1] = "axis_satellite_axi2apb_p2pm/T/axis_satellite_axi2apb_p2pm",
	[0x2] = "axis_satellite_grout/T/axis_satellite_grout",
	[0x3] = "cbb_firewall/T/cbb_firewall",
	[0x4] = "gpu_p2pm/T/gpu_p2pm",
	[0x5] = "host1x_p2pm/T/host1x_p2pm",
	[0x6] = "sapb_3_p2pm/T/sapb_3_p2pm",
	[0x7] = "smmu0_p2pm/T/smmu0_p2pm",
	[0x8] = "smmu1_p2pm/T/smmu1_p2pm",
	[0x9] = "smmu2_p2pm/T/smmu2_p2pm",
	[0xa] = "stm_p2pm/T/stm_p2pm",
	[0xb] = "RESERVED",
	[0xc] = "RESERVED",
	[0xd] = "RESERVED",
	[0xe] = "RESERVED",
	[0xf] = "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[] = {
	{ 0x0, 0x0, 0x00, 0x0, 0x02300000,  0, 0x00000000 },
	{ 0x0, 0x1, 0x00, 0x0, 0x02003000,  0, 0x02003000 },
	{ 0x0, 0x1, 0x01, 0x0, 0x02006000,  2, 0x02006000 },
	{ 0x0, 0x1, 0x02, 0x0, 0x02016000,  3, 0x02016000 },
	{ 0x0, 0x1, 0x03, 0x0, 0x0201d000,  4, 0x0201d000 },
	{ 0x0, 0x1, 0x04, 0x0, 0x0202b000,  6, 0x0202b000 },
	{ 0x0, 0x1, 0x05, 0x0, 0x02434000, 20, 0x02434000 },
	{ 0x0, 0x1, 0x06, 0x0, 0x02436000, 21, 0x02436000 },
	{ 0x0, 0x1, 0x07, 0x0, 0x02438000, 22, 0x02438000 },
	{ 0x0, 0x1, 0x08, 0x0, 0x02445000, 24, 0x02445000 },
	{ 0x0, 0x1, 0x09, 0x0, 0x02446000, 25, 0x02446000 },
	{ 0x0, 0x1, 0x0a, 0x0, 0x02004000,  1, 0x02004000 },
	{ 0x0, 0x1, 0x0b, 0x0, 0x0201e000,  5, 0x0201e000 },
	{ 0x0, 0x1, 0x0c, 0x0, 0x0202c000,  7, 0x0202c000 },
	{ 0x0, 0x1, 0x0d, 0x0, 0x02204000,  8, 0x02204000 },
	{ 0x0, 0x1, 0x0e, 0x0, 0x02214000,  9, 0x02214000 },
	{ 0x0, 0x1, 0x0f, 0x0, 0x02224000, 10, 0x02224000 },
	{ 0x0, 0x1, 0x10, 0x0, 0x02234000, 11, 0x02234000 },
	{ 0x0, 0x1, 0x11, 0x0, 0x02244000, 12, 0x02244000 },
	{ 0x0, 0x1, 0x12, 0x0, 0x02254000, 13, 0x02254000 },
	{ 0x0, 0x1, 0x13, 0x0, 0x02264000, 14, 0x02264000 },
	{ 0x0, 0x1, 0x14, 0x0, 0x02274000, 15, 0x02274000 },
	{ 0x0, 0x1, 0x15, 0x0, 0x02284000, 16, 0x02284000 },
	{ 0x0, 0x1, 0x16, 0x0, 0x0243a000, 23, 0x0243a000 },
	{ 0x0, 0x1, 0x17, 0x0, 0x02370000, 17, 0x02370000 },
	{ 0x0, 0x1, 0x18, 0x0, 0x023d0000, 18, 0x023d0000 },
	{ 0x0, 0x1, 0x19, 0x0, 0x023e0000, 19, 0x023e0000 },
	{ 0x0, 0x1, 0x1a, 0x0, 0x02450000, 26, 0x02450000 },
	{ 0x0, 0x1, 0x1b, 0x0, 0x02460000, 27, 0x02460000 },
	{ 0x0, 0x1, 0x1c, 0x0, 0x02490000, 28, 0x02490000 },
	{ 0x0, 0x1, 0x1d, 0x0, 0x03130000, 31, 0x03130000 },
	{ 0x0, 0x1, 0x1e, 0x0, 0x03160000, 32, 0x03160000 },
	{ 0x0, 0x1, 0x1f, 0x0, 0x03270000, 33, 0x03270000 },
	{ 0x0, 0x1, 0x20, 0x0, 0x032e0000, 35, 0x032e0000 },
	{ 0x0, 0x1, 0x21, 0x0, 0x03300000, 36, 0x03300000 },
	{ 0x0, 0x1, 0x22, 0x0, 0x13090000, 40, 0x13090000 },
	{ 0x0, 0x1, 0x23, 0x0, 0x20120000, 43, 0x20120000 },
	{ 0x0, 0x1, 0x24, 0x0, 0x20170000, 44, 0x20170000 },
	{ 0x0, 0x1, 0x25, 0x0, 0x20190000, 45, 0x20190000 },
	{ 0x0, 0x1, 0x26, 0x0, 0x201b0000, 46, 0x201b0000 },
	{ 0x0, 0x1, 0x27, 0x0, 0x20250000, 47, 0x20250000 },
	{ 0x0, 0x1, 0x28, 0x0, 0x20260000, 48, 0x20260000 },
	{ 0x0, 0x1, 0x29, 0x0, 0x20420000, 49, 0x20420000 },
	{ 0x0, 0x1, 0x2a, 0x0, 0x20460000, 50, 0x20460000 },
	{ 0x0, 0x1, 0x2b, 0x0, 0x204f0000, 51, 0x204f0000 },
	{ 0x0, 0x1, 0x2c, 0x0, 0x20520000, 52, 0x20520000 },
	{ 0x0, 0x1, 0x2d, 0x0, 0x20580000, 53, 0x20580000 },
	{ 0x0, 0x1, 0x2e, 0x0, 0x205a0000, 54, 0x205a0000 },
	{ 0x0, 0x1, 0x2f, 0x0, 0x205c0000, 55, 0x205c0000 },
	{ 0x0, 0x1, 0x30, 0x0, 0x20690000, 56, 0x20690000 },
	{ 0x0, 0x1, 0x31, 0x0, 0x20770000, 57, 0x20770000 },
	{ 0x0, 0x1, 0x32, 0x0, 0x20790000, 58, 0x20790000 },
	{ 0x0, 0x1, 0x33, 0x0, 0x20880000, 59, 0x20880000 },
	{ 0x0, 0x1, 0x34, 0x0, 0x20990000, 62, 0x20990000 },
	{ 0x0, 0x1, 0x35, 0x0, 0x20e10000, 65, 0x20e10000 },
	{ 0x0, 0x1, 0x36, 0x0, 0x20e70000, 66, 0x20e70000 },
	{ 0x0, 0x1, 0x37, 0x0, 0x20e80000, 67, 0x20e80000 },
	{ 0x0, 0x1, 0x38, 0x0, 0x20f30000, 68, 0x20f30000 },
	{ 0x0, 0x1, 0x39, 0x0, 0x20f50000, 69, 0x20f50000 },
	{ 0x0, 0x1, 0x3a, 0x0, 0x20fc0000, 70, 0x20fc0000 },
	{ 0x0, 0x1, 0x3b, 0x0, 0x21110000, 72, 0x21110000 },
	{ 0x0, 0x1, 0x3c, 0x0, 0x21270000, 73, 0x21270000 },
	{ 0x0, 0x1, 0x3d, 0x0, 0x21290000, 74, 0x21290000 },
	{ 0x0, 0x1, 0x3e, 0x0, 0x21840000, 75, 0x21840000 },
	{ 0x0, 0x1, 0x3f, 0x0, 0x21880000, 76, 0x21880000 },
	{ 0x0, 0x1, 0x40, 0x0, 0x218d0000, 77, 0x218d0000 },
	{ 0x0, 0x1, 0x41, 0x0, 0x21950000, 78, 0x21950000 },
	{ 0x0, 0x1, 0x42, 0x0, 0x21960000, 79, 0x21960000 },
	{ 0x0, 0x1, 0x43, 0x0, 0x21a10000, 80, 0x21a10000 },
	{ 0x0, 0x1, 0x44, 0x0, 0x024a0000, 29, 0x024a0000 },
	{ 0x0, 0x1, 0x45, 0x0, 0x024c0000, 30, 0x024c0000 },
	{ 0x0, 0x1, 0x46, 0x0, 0x032c0000, 34, 0x032c0000 },
	{ 0x0, 0x1, 0x47, 0x0, 0x03400000, 37, 0x03400000 },
	{ 0x0, 0x1, 0x48, 0x0, 0x130a0000, 41, 0x130a0000 },
	{ 0x0, 0x1, 0x49, 0x0, 0x130c0000, 42, 0x130c0000 },
	{ 0x0, 0x1, 0x4a, 0x0, 0x208a0000, 60, 0x208a0000 },
	{ 0x0, 0x1, 0x4b, 0x0, 0x208c0000, 61, 0x208c0000 },
	{ 0x0, 0x1, 0x4c, 0x0, 0x209a0000, 63, 0x209a0000 },
	{ 0x0, 0x1, 0x4d, 0x0, 0x21a40000, 81, 0x21a40000 },
	{ 0x0, 0x1, 0x4e, 0x0, 0x03440000, 38, 0x03440000 },
	{ 0x0, 0x1, 0x4f, 0x0, 0x20d00000, 64, 0x20d00000 },
	{ 0x0, 0x1, 0x50, 0x0, 0x21000000, 71, 0x21000000 },
	{ 0x0, 0x1, 0x51, 0x0, 0x0b000000, 39, 0x0b000000 },
	{ 0x0, 0x2, 0x00, 0x0, 0x00000000,  0, 0x00000000 },
	{ 0x0, 0x3, 0x00, 0x0, 0x02340000,  0, 0x00000000 },
	{ 0x0, 0x4, 0x00, 0x0, 0x17000000,  0, 0x17000000 },
	{ 0x0, 0x4, 0x01, 0x0, 0x18000000,  1, 0x18000000 },
	{ 0x0, 0x5, 0x00, 0x0, 0x13e80000,  1, 0x13e80000 },
	{ 0x0, 0x5, 0x01, 0x0, 0x15810000, 12, 0x15810000 },
	{ 0x0, 0x5, 0x02, 0x0, 0x15840000, 14, 0x15840000 },
	{ 0x0, 0x5, 0x03, 0x0, 0x15a40000, 17, 0x15a40000 },
	{ 0x0, 0x5, 0x04, 0x0, 0x13f00000,  3, 0x13f00000 },
	{ 0x0, 0x5, 0x05, 0x0, 0x15820000, 13, 0x15820000 },
	{ 0x0, 0x5, 0x06, 0x0, 0x13ec0000,  2, 0x13ec0000 },
	{ 0x0, 0x5, 0x07, 0x0, 0x15200000,  6, 0x15200000 },
	{ 0x0, 0x5, 0x08, 0x0, 0x15340000,  7, 0x15340000 },
	{ 0x0, 0x5, 0x09, 0x0, 0x15380000,  8, 0x15380000 },
	{ 0x0, 0x5, 0x0a, 0x0, 0x15500000, 10, 0x15500000 },
	{ 0x0, 0x5, 0x0b, 0x0, 0x155c0000, 11, 0x155c0000 },
	{ 0x0, 0x5, 0x0c, 0x0, 0x15a00000, 16, 0x15a00000 },
	{ 0x0, 0x5, 0x0d, 0x0, 0x13e00000,  0, 0x13e00000 },
	{ 0x0, 0x5, 0x0e, 0x0, 0x15100000,  5, 0x15100000 },
	{ 0x0, 0x5, 0x0f, 0x0, 0x15480000,  9, 0x15480000 },
	{ 0x0, 0x5, 0x10, 0x0, 0x15880000, 15, 0x15880000 },
	{ 0x0, 0x5, 0x11, 0x0, 0x15a80000, 18, 0x15a80000 },
	{ 0x0, 0x5, 0x12, 0x0, 0x15b00000, 19, 0x15b00000 },
	{ 0x0, 0x5, 0x13, 0x0, 0x14800000,  4, 0x14800000 },
	{ 0x0, 0x5, 0x14, 0x0, 0x15c00000, 20, 0x15c00000 },
	{ 0x0, 0x5, 0x15, 0x0, 0x16000000, 21, 0x16000000 },
	{ 0x0, 0x6, 0x00, 0x0, 0x02000000,  4, 0x02000000 },
	{ 0x0, 0x6, 0x01, 0x0, 0x02007000,  5, 0x02007000 },
	{ 0x0, 0x6, 0x02, 0x0, 0x02008000,  6, 0x02008000 },
	{ 0x0, 0x6, 0x03, 0x0, 0x02013000,  7, 0x02013000 },
	{ 0x0, 0x6, 0x04, 0x0, 0x0201c000,  8, 0x0201c000 },
	{ 0x0, 0x6, 0x05, 0x0, 0x02020000,  9, 0x02020000 },
	{ 0x0, 0x6, 0x06, 0x0, 0x0202a000, 10, 0x0202a000 },
	{ 0x0, 0x6, 0x07, 0x0, 0x0202e000, 11, 0x0202e000 },
	{ 0x0, 0x6, 0x08, 0x0, 0x06400000, 33, 0x06400000 },
	{ 0x0, 0x6, 0x09, 0x0, 0x02038000, 12, 0x02038000 },
	{ 0x0, 0x6, 0x0a, 0x0, 0x00100000,  0, 0x00100000 },
	{ 0x0, 0x6, 0x0b, 0x0, 0x023b0000, 13, 0x023b0000 },
	{ 0x0, 0x6, 0x0c, 0x0, 0x02800000, 16, 0x02800000 },
	{ 0x0, 0x6, 0x0d, 0x0, 0x030e0000, 22, 0x030e0000 },
	{ 0x0, 0x6, 0x0e, 0x0, 0x03800000, 23, 0x03800000 },
	{ 0x0, 0x6, 0x0f, 0x0, 0x03980000, 25, 0x03980000 },
	{ 0x0, 0x6, 0x10, 0x0, 0x03a60000, 26, 0x03a60000 },
	{ 0x0, 0x6, 0x11, 0x0, 0x03d80000, 31, 0x03d80000 },
	{ 0x0, 0x6, 0x12, 0x0, 0x20000000, 36, 0x20000000 },
	{ 0x0, 0x6, 0x13, 0x0, 0x20050000, 38, 0x20050000 },
	{ 0x0, 0x6, 0x14, 0x0, 0x201e0000, 40, 0x201e0000 },
	{ 0x0, 0x6, 0x15, 0x0, 0x20280000, 42, 0x20280000 },
	{ 0x0, 0x6, 0x16, 0x0, 0x202c0000, 43, 0x202c0000 },
	{ 0x0, 0x6, 0x17, 0x0, 0x20390000, 44, 0x20390000 },
	{ 0x0, 0x6, 0x18, 0x0, 0x20430000, 45, 0x20430000 },
	{ 0x0, 0x6, 0x19, 0x0, 0x20440000, 46, 0x20440000 },
	{ 0x0, 0x6, 0x1a, 0x0, 0x204e0000, 47, 0x204e0000 },
	{ 0x0, 0x6, 0x1b, 0x0, 0x20550000, 48, 0x20550000 },
	{ 0x0, 0x6, 0x1c, 0x0, 0x20570000, 49, 0x20570000 },
	{ 0x0, 0x6, 0x1d, 0x0, 0x20590000, 50, 0x20590000 },
	{ 0x0, 0x6, 0x1e, 0x0, 0x20730000, 52, 0x20730000 },
	{ 0x0, 0x6, 0x1f, 0x0, 0x209f0000, 54, 0x209f0000 },
	{ 0x0, 0x6, 0x20, 0x0, 0x20e20000, 55, 0x20e20000 },
	{ 0x0, 0x6, 0x21, 0x0, 0x20ed0000, 56, 0x20ed0000 },
	{ 0x0, 0x6, 0x22, 0x0, 0x20fd0000, 57, 0x20fd0000 },
	{ 0x0, 0x6, 0x23, 0x0, 0x21120000, 59, 0x21120000 },
	{ 0x0, 0x6, 0x24, 0x0, 0x211a0000, 60, 0x211a0000 },
	{ 0x0, 0x6, 0x25, 0x0, 0x21850000, 61, 0x21850000 },
	{ 0x0, 0x6, 0x26, 0x0, 0x21860000, 62, 0x21860000 },
	{ 0x0, 0x6, 0x27, 0x0, 0x21890000, 63, 0x21890000 },
	{ 0x0, 0x6, 0x28, 0x0, 0x21970000, 64, 0x21970000 },
	{ 0x0, 0x6, 0x29, 0x0, 0x21990000, 65, 0x21990000 },
	{ 0x0, 0x6, 0x2a, 0x0, 0x21a00000, 66, 0x21a00000 },
	{ 0x0, 0x6, 0x2b, 0x0, 0x21a90000, 68, 0x21a90000 },
	{ 0x0, 0x6, 0x2c, 0x0, 0x21ac0000, 70, 0x21ac0000 },
	{ 0x0, 0x6, 0x2d, 0x0, 0x01f80000,  3, 0x01f80000 },
	{ 0x0, 0x6, 0x2e, 0x0, 0x024e0000, 14, 0x024e0000 },
	{ 0x0, 0x6, 0x2f, 0x0, 0x030c0000, 21, 0x030c0000 },
	{ 0x0, 0x6, 0x30, 0x0, 0x03820000, 24, 0x03820000 },
	{ 0x0, 0x6, 0x31, 0x0, 0x03aa0000, 27, 0x03aa0000 },
	{ 0x0, 0x6, 0x32, 0x0, 0x03c80000, 29, 0x03c80000 },
	{ 0x0, 0x6, 0x33, 0x0, 0x130e0000, 34, 0x130e0000 },
	{ 0x0, 0x6, 0x34, 0x0, 0x20020000, 37, 0x20020000 },
	{ 0x0, 0x6, 0x35, 0x0, 0x20060000, 39, 0x20060000 },
	{ 0x0, 0x6, 0x36, 0x0, 0x20200000, 41, 0x20200000 },
	{ 0x0, 0x6, 0x37, 0x0, 0x206a0000, 51, 0x206a0000 },
	{ 0x0, 0x6, 0x38, 0x0, 0x20740000, 53, 0x20740000 },
	{ 0x0, 0x6, 0x39, 0x0, 0x20fe0000, 58, 0x20fe0000 },
	{ 0x0, 0x6, 0x3a, 0x0, 0x21a20000, 67, 0x21a20000 },
	{ 0x0, 0x6, 0x3b, 0x0, 0x21aa0000, 69, 0x21aa0000 },
	{ 0x0, 0x6, 0x3c, 0x0, 0x02b80000, 17, 0x02b80000 },
	{ 0x0, 0x6, 0x3d, 0x0, 0x03080000, 20, 0x03080000 },
	{ 0x0, 0x6, 0x3e, 0x0, 0x13100000, 35, 0x13100000 },
	{ 0x0, 0x6, 0x3f, 0x0, 0x01f00000,  2, 0x01f00000 },
	{ 0x0, 0x6, 0x40, 0x0, 0x03000000, 19, 0x03000000 },
	{ 0x0, 0x6, 0x41, 0x0, 0x03c00000, 28, 0x03c00000 },
	{ 0x0, 0x6, 0x42, 0x0, 0x03d00000, 30, 0x03d00000 },
	{ 0x0, 0x6, 0x43, 0x0, 0x01700000,  1, 0x01700000 },
	{ 0x0, 0x6, 0x44, 0x0, 0x02c00000, 18, 0x02c00000 },
	{ 0x0, 0x6, 0x45, 0x0, 0x02600000, 15, 0x02600000 },
	{ 0x0, 0x6, 0x46, 0x0, 0x06000000, 32, 0x06000000 },
	{ 0x0, 0x6, 0x47, 0x0, 0x24000000, 71, 0x24000000 },
	{ 0x0, 0x7, 0x00, 0x0, 0x12000000,  0, 0x12000000 },
	{ 0x0, 0x8, 0x00, 0x0, 0x11000000,  0, 0x11000000 },
	{ 0x0, 0x9, 0x00, 0x0, 0x10000000,  0, 0x10000000 },
	{ 0x0, 0xa, 0x00, 0x0, 0x22000000,  0, 0x22000000 }
};

/*
 * BPMP NOC aperture lookup table as per file "BPMP_NOC_Structure.info".
 */
static const char * const tegra194_bpmpnoc_routeid_initflow[] = {
	[0x0] = "cbb_i/I/0",
	[0x1] = "cpu_m_i/I/0",
	[0x2] = "cpu_p_i/I/0",
	[0x3] = "cvc_i/I/0",
	[0x4] = "dma_m_i/I/0",
	[0x5] = "dma_p_i/I/0",
	[0x6] = "RESERVED",
	[0x7] = "RESERVED"
};

static const char * const tegra194_bpmpnoc_routeid_targflow[] = {
	[0x00] = "multiport0_t/T/actmon",
	[0x01] = "multiport0_t/T/ast_0",
	[0x02] = "multiport0_t/T/ast_1",
	[0x03] = "multiport0_t/T/atcm_cfg",
	[0x04] = "multiport0_t/T/car",
	[0x05] = "multiport0_t/T/central_pwr_mgr",
	[0x06] = "multiport0_t/T/central_vtg_ctlr",
	[0x07] = "multiport0_t/T/cfg",
	[0x08] = "multiport0_t/T/dma",
	[0x09] = "multiport0_t/T/err_collator",
	[0x0a] = "multiport0_t/T/err_collator_car",
	[0x0b] = "multiport0_t/T/fpga_misc",
	[0x0c] = "multiport0_t/T/fpga_uart",
	[0x0d] = "multiport0_t/T/gte",
	[0x0e] = "multiport0_t/T/hsp",
	[0x0f] = "multiport0_t/T/misc",
	[0x10] = "multiport0_t/T/pm",
	[0x11] = "multiport0_t/T/simon0",
	[0x12] = "multiport0_t/T/simon1",
	[0x13] = "multiport0_t/T/simon2",
	[0x14] = "multiport0_t/T/simon3",
	[0x15] = "multiport0_t/T/simon4",
	[0x16] = "multiport0_t/T/soc_therm",
	[0x17] = "multiport0_t/T/tke",
	[0x18] = "multiport0_t/T/vic_0",
	[0x19] = "multiport0_t/T/vic_1",
	[0x1a] = "ast0_t/T/0",
	[0x1b] = "ast1_t/T/0",
	[0x1c] = "bpmp_noc_firewall/T/0",
	[0x1d] = "cbb_t/T/0",
	[0x1e] = "cpu_t/T/0",
	[0x1f] = "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[] = {
	{ 0x0, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
	{ 0x0, 0x1e, 0x0, 0x0, 0x0d400000, 0,  0x0d400000 },
	{ 0x0, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
	{ 0x0, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
	{ 0x0, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
	{ 0x0, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
	{ 0x0, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
	{ 0x0, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
	{ 0x0, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
	{ 0x0, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
	{ 0x0, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
	{ 0x0, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
	{ 0x0, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
	{ 0x0, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
	{ 0x0, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
	{ 0x0, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
	{ 0x0, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
	{ 0x0, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
	{ 0x0, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
	{ 0x0, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
	{ 0x0, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
	{ 0x0, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
	{ 0x0, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
	{ 0x0, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
	{ 0x0, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
	{ 0x0, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
	{ 0x0, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
	{ 0x0, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
	{ 0x0, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
	{ 0x0, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
	{ 0x0, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
	{ 0x0, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
	{ 0x0, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
	{ 0x0, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
	{ 0x0, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
	{ 0x0, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
	{ 0x0, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
	{ 0x0, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
	{ 0x0, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
	{ 0x0, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
	{ 0x0, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
	{ 0x0, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
	{ 0x0, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
	{ 0x0, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
	{ 0x0, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
	{ 0x0, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
	{ 0x0, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
	{ 0x0, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
	{ 0x0, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
	{ 0x0, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
	{ 0x0, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
	{ 0x0, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
	{ 0x0, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x1, 0x1a, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
	{ 0x1, 0x1a, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
	{ 0x1, 0x1a, 0x2, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x2, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
	{ 0x2, 0x1d, 0x0, 0x0, 0x20b00000, 8,  0x20b00000 },
	{ 0x2, 0x1d, 0x1, 0x0, 0x20800000, 7,  0x20800000 },
	{ 0x2, 0x1d, 0x2, 0x0, 0x20c00000, 9,  0x20c00000 },
	{ 0x2, 0x1d, 0x3, 0x0, 0x0d800000, 3,  0x0d800000 },
	{ 0x2, 0x1d, 0x4, 0x0, 0x20000000, 6,  0x20000000 },
	{ 0x2, 0x1d, 0x5, 0x0, 0x0c000000, 2,  0x0c000000 },
	{ 0x2, 0x1d, 0x6, 0x0, 0x21000000, 10, 0x21000000 },
	{ 0x2, 0x1d, 0x7, 0x0, 0x0e000000, 4,  0x0e000000 },
	{ 0x2, 0x1d, 0x8, 0x0, 0x22000000, 11, 0x22000000 },
	{ 0x2, 0x1d, 0x9, 0x0, 0x08000000, 1,  0x08000000 },
	{ 0x2, 0x1d, 0xa, 0x0, 0x24000000, 12, 0x24000000 },
	{ 0x2, 0x1d, 0xb, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x2, 0x1d, 0xc, 0x0, 0x28000000, 13, 0x28000000 },
	{ 0x2, 0x1d, 0xd, 0x0, 0x10000000, 5,  0x10000000 },
	{ 0x2, 0x1d, 0xe, 0x0, 0x30000000, 14, 0x30000000 },
	{ 0x2, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
	{ 0x2, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
	{ 0x2, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
	{ 0x2, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
	{ 0x2, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
	{ 0x2, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
	{ 0x2, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
	{ 0x2, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
	{ 0x2, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
	{ 0x2, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
	{ 0x2, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
	{ 0x2, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
	{ 0x2, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
	{ 0x2, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
	{ 0x2, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
	{ 0x2, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
	{ 0x2, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
	{ 0x2, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
	{ 0x2, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
	{ 0x2, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
	{ 0x2, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
	{ 0x2, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
	{ 0x2, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
	{ 0x2, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
	{ 0x2, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
	{ 0x2, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
	{ 0x2, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
	{ 0x2, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
	{ 0x2, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
	{ 0x2, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
	{ 0x2, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
	{ 0x2, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
	{ 0x2, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
	{ 0x2, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
	{ 0x2, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
	{ 0x2, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
	{ 0x2, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
	{ 0x2, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
	{ 0x2, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
	{ 0x2, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
	{ 0x2, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
	{ 0x2, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
	{ 0x2, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
	{ 0x2, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
	{ 0x2, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
	{ 0x2, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
	{ 0x2, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
	{ 0x2, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
	{ 0x2, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
	{ 0x2, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
	{ 0x2, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x1b, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
	{ 0x3, 0x1b, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
	{ 0x3, 0x1c, 0x0, 0x2, 0x0d640000, 0,  0x00000000 },
	{ 0x3, 0x1d, 0x0, 0x2, 0x20b00000, 8,  0x20b00000 },
	{ 0x3, 0x1d, 0x1, 0x2, 0x20800000, 7,  0x20800000 },
	{ 0x3, 0x1d, 0x2, 0x2, 0x20c00000, 9,  0x20c00000 },
	{ 0x3, 0x1d, 0x3, 0x2, 0x0d800000, 3,  0x0d800000 },
	{ 0x3, 0x1d, 0x4, 0x2, 0x20000000, 6,  0x20000000 },
	{ 0x3, 0x1d, 0x5, 0x2, 0x0c000000, 2,  0x0c000000 },
	{ 0x3, 0x1d, 0x6, 0x2, 0x21000000, 10, 0x21000000 },
	{ 0x3, 0x1d, 0x7, 0x2, 0x0e000000, 4,  0x0e000000 },
	{ 0x3, 0x1d, 0x8, 0x2, 0x22000000, 11, 0x22000000 },
	{ 0x3, 0x1d, 0x9, 0x2, 0x08000000, 1,  0x08000000 },
	{ 0x3, 0x1d, 0xa, 0x2, 0x24000000, 12, 0x24000000 },
	{ 0x3, 0x1d, 0xb, 0x2, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x1d, 0xc, 0x2, 0x28000000, 13, 0x28000000 },
	{ 0x3, 0x1d, 0xd, 0x2, 0x10000000, 5,  0x10000000 },
	{ 0x3, 0x1d, 0xe, 0x2, 0x30000000, 14, 0x30000000 },
	{ 0x3, 0x1e, 0x0, 0x2, 0x0d400000, 0,  0x0d400000 },
	{ 0x3, 0x00, 0x0, 0x2, 0x0d230000, 0,  0x00000000 },
	{ 0x3, 0x01, 0x0, 0x2, 0x0d040000, 0,  0x00000000 },
	{ 0x3, 0x02, 0x0, 0x2, 0x0d050000, 0,  0x00000000 },
	{ 0x3, 0x03, 0x0, 0x2, 0x0d000000, 0,  0x00000000 },
	{ 0x3, 0x04, 0x0, 0x2, 0x20ae0000, 3,  0x000e0000 },
	{ 0x3, 0x04, 0x1, 0x2, 0x20ac0000, 2,  0x000c0000 },
	{ 0x3, 0x04, 0x2, 0x2, 0x20a80000, 1,  0x00080000 },
	{ 0x3, 0x04, 0x3, 0x2, 0x20a00000, 0,  0x00000000 },
	{ 0x3, 0x05, 0x0, 0x2, 0x0d2a0000, 0,  0x00000000 },
	{ 0x3, 0x06, 0x0, 0x2, 0x0d290000, 0,  0x00000000 },
	{ 0x3, 0x07, 0x0, 0x2, 0x0d2c0000, 0,  0x00000000 },
	{ 0x3, 0x08, 0x0, 0x2, 0x0d0e0000, 4,  0x00080000 },
	{ 0x3, 0x08, 0x1, 0x2, 0x0d060000, 0,  0x00000000 },
	{ 0x3, 0x08, 0x2, 0x2, 0x0d080000, 1,  0x00020000 },
	{ 0x3, 0x08, 0x3, 0x2, 0x0d0a0000, 2,  0x00040000 },
	{ 0x3, 0x08, 0x4, 0x2, 0x0d0c0000, 3,  0x00060000 },
	{ 0x3, 0x09, 0x0, 0x2, 0x0d650000, 0,  0x00000000 },
	{ 0x3, 0x0a, 0x0, 0x2, 0x20af0000, 0,  0x00000000 },
	{ 0x3, 0x0b, 0x0, 0x2, 0x0d3e0000, 0,  0x00000000 },
	{ 0x3, 0x0c, 0x0, 0x2, 0x0d3d0000, 0,  0x00000000 },
	{ 0x3, 0x0d, 0x0, 0x2, 0x0d1e0000, 0,  0x00000000 },
	{ 0x3, 0x0e, 0x0, 0x2, 0x0d150000, 0,  0x00000000 },
	{ 0x3, 0x0e, 0x1, 0x2, 0x0d160000, 1,  0x00010000 },
	{ 0x3, 0x0e, 0x2, 0x2, 0x0d170000, 2,  0x00020000 },
	{ 0x3, 0x0e, 0x3, 0x2, 0x0d180000, 3,  0x00030000 },
	{ 0x3, 0x0e, 0x4, 0x2, 0x0d190000, 4,  0x00040000 },
	{ 0x3, 0x0e, 0x5, 0x2, 0x0d1a0000, 5,  0x00050000 },
	{ 0x3, 0x0e, 0x6, 0x2, 0x0d1b0000, 6,  0x00060000 },
	{ 0x3, 0x0e, 0x7, 0x2, 0x0d1c0000, 7,  0x00070000 },
	{ 0x3, 0x0e, 0x8, 0x2, 0x0d1d0000, 8,  0x00080000 },
	{ 0x3, 0x0f, 0x0, 0x2, 0x0d660000, 0,  0x00000000 },
	{ 0x3, 0x10, 0x0, 0x2, 0x0d1f0000, 0,  0x00000000 },
	{ 0x3, 0x10, 0x1, 0x2, 0x0d200000, 1,  0x00010000 },
	{ 0x3, 0x10, 0x2, 0x2, 0x0d210000, 2,  0x00020000 },
	{ 0x3, 0x10, 0x3, 0x2, 0x0d220000, 3,  0x00030000 },
	{ 0x3, 0x11, 0x0, 0x2, 0x0d240000, 0,  0x00000000 },
	{ 0x3, 0x12, 0x0, 0x2, 0x0d250000, 0,  0x00000000 },
	{ 0x3, 0x13, 0x0, 0x2, 0x0d260000, 0,  0x00000000 },
	{ 0x3, 0x14, 0x0, 0x2, 0x0d270000, 0,  0x00000000 },
	{ 0x3, 0x15, 0x0, 0x2, 0x0d2b0000, 0,  0x00000000 },
	{ 0x3, 0x16, 0x0, 0x2, 0x0d280000, 0,  0x00000000 },
	{ 0x3, 0x17, 0x0, 0x2, 0x0d0f0000, 0,  0x00000000 },
	{ 0x3, 0x17, 0x1, 0x2, 0x0d100000, 1,  0x00010000 },
	{ 0x3, 0x17, 0x2, 0x2, 0x0d110000, 2,  0x00020000 },
	{ 0x3, 0x17, 0x3, 0x2, 0x0d120000, 3,  0x00030000 },
	{ 0x3, 0x17, 0x4, 0x2, 0x0d130000, 4,  0x00040000 },
	{ 0x3, 0x17, 0x5, 0x2, 0x0d140000, 5,  0x00050000 },
	{ 0x3, 0x18, 0x0, 0x2, 0x0d020000, 0,  0x00000000 },
	{ 0x3, 0x19, 0x0, 0x2, 0x0d030000, 0,  0x00000000 },
	{ 0x3, 0x1f, 0x0, 0x2, 0x0d600000, 0,  0x00000000 },
	{ 0x3, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x4, 0x1b, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
	{ 0x4, 0x1b, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
	{ 0x4, 0x1e, 0x0, 0x2, 0x0d400000, 0,  0x0d400000 },
	{ 0x4, 0x1e, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x5, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
	{ 0x5, 0x1d, 0x0, 0x0, 0x20b00000, 8,  0x20b00000 },
	{ 0x5, 0x1d, 0x1, 0x0, 0x20800000, 7,  0x20800000 },
	{ 0x5, 0x1d, 0x2, 0x0, 0x20c00000, 9,  0x20c00000 },
	{ 0x5, 0x1d, 0x3, 0x0, 0x0d800000, 3,  0x0d800000 },
	{ 0x5, 0x1d, 0x4, 0x0, 0x20000000, 6,  0x20000000 },
	{ 0x5, 0x1d, 0x5, 0x0, 0x0c000000, 2,  0x0c000000 },
	{ 0x5, 0x1d, 0x6, 0x0, 0x21000000, 10, 0x21000000 },
	{ 0x5, 0x1d, 0x7, 0x0, 0x0e000000, 4,  0x0e000000 },
	{ 0x5, 0x1d, 0x8, 0x0, 0x22000000, 11, 0x22000000 },
	{ 0x5, 0x1d, 0x9, 0x0, 0x08000000, 1,  0x08000000 },
	{ 0x5, 0x1d, 0xa, 0x0, 0x24000000, 12, 0x24000000 },
	{ 0x5, 0x1d, 0xb, 0x0, 0x00000000, 0,  0x00000000 },
	{ 0x5, 0x1d, 0xc, 0x0, 0x28000000, 13, 0x28000000 },
	{ 0x5, 0x1d, 0xd, 0x0, 0x10000000, 5,  0x10000000 },
	{ 0x5, 0x1d, 0xe, 0x0, 0x30000000, 14, 0x30000000 },
	{ 0x5, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
	{ 0x5, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
	{ 0x5, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
	{ 0x5, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
	{ 0x5, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
	{ 0x5, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
	{ 0x5, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
	{ 0x5, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
	{ 0x5, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
	{ 0x5, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
	{ 0x5, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
	{ 0x5, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
	{ 0x5, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
	{ 0x5, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
	{ 0x5, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
	{ 0x5, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
	{ 0x5, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
	{ 0x5, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
	{ 0x5, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
	{ 0x5, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
	{ 0x5, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
	{ 0x5, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
	{ 0x5, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
	{ 0x5, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
	{ 0x5, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
	{ 0x5, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
	{ 0x5, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
	{ 0x5, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
	{ 0x5, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
	{ 0x5, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
	{ 0x5, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
	{ 0x5, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
	{ 0x5, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
	{ 0x5, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
	{ 0x5, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
	{ 0x5, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
	{ 0x5, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
	{ 0x5, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
	{ 0x5, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
	{ 0x5, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
	{ 0x5, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
	{ 0x5, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
	{ 0x5, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
	{ 0x5, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
	{ 0x5, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
	{ 0x5, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
	{ 0x5, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
	{ 0x5, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
	{ 0x5, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
	{ 0x5, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
	{ 0x5, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 }
};

/*
 * AON NOC aperture lookup table as per file "AON_NOC_Structure.info".
 */
static const char * const tegra194_aonnoc_routeid_initflow[] = {
	[0x0] = "cbb_i/I/0",
	[0x1] = "cpu_p_i/I/0",
	[0x2] = "dma_m_i/I/0",
	[0x3] = "dma_p_i/I/0"
};

static const char * const tegra194_aonnoc_routeid_targflow[] = {
	[0x00] = "multiport1_t/T/aon_misc",
	[0x01] = "multiport1_t/T/avic0",
	[0x02] = "multiport1_t/T/avic1",
	[0x03] = "multiport1_t/T/can1",
	[0x04] = "multiport1_t/T/can2",
	[0x05] = "multiport1_t/T/dma",
	[0x06] = "multiport1_t/T/dmic",
	[0x07] = "multiport1_t/T/err_collator",
	[0x08] = "multiport1_t/T/fpga_misc",
	[0x09] = "multiport1_t/T/gte",
	[0x0a] = "multiport1_t/T/hsp",
	[0x0b] = "multiport1_t/T/i2c2",
	[0x0c] = "multiport1_t/T/i2c8",
	[0x0d] = "multiport1_t/T/pwm",
	[0x0e] = "multiport1_t/T/spi2",
	[0x0f] = "multiport1_t/T/tke",
	[0x10] = "multiport1_t/T/uartg",
	[0x11] = "RESERVED",
	[0x12] = "RESERVED",
	[0x13] = "RESERVED",
	[0x14] = "RESERVED",
	[0x15] = "RESERVED",
	[0x16] = "RESERVED",
	[0x17] = "RESERVED",
	[0x18] = "RESERVED",
	[0x19] = "RESERVED",
	[0x1a] = "RESERVED",
	[0x1b] = "RESERVED",
	[0x1c] = "RESERVED",
	[0x1d] = "RESERVED",
	[0x1e] = "RESERVED",
	[0x1f] = "RESERVED",
	[0x20] = "multiport0_t/T/aovc",
	[0x21] = "multiport0_t/T/atcm",
	[0x22] = "multiport0_t/T/cast",
	[0x23] = "multiport0_t/T/dast",
	[0x24] = "multiport0_t/T/err_collator_car",
	[0x25] = "multiport0_t/T/gpio",
	[0x26] = "multiport0_t/T/i2c10",
	[0x27] = "multiport0_t/T/mss",
	[0x28] = "multiport0_t/T/padctl_a12",
	[0x29] = "multiport0_t/T/padctl_a14",
	[0x2a] = "multiport0_t/T/padctl_a15",
	[0x2b] = "multiport0_t/T/rtc",
	[0x2c] = "multiport0_t/T/tsc",
	[0x2d] = "RESERVED",
	[0x2e] = "RESERVED",
	[0x2f] = "RESERVED",
	[0x30] = "multiport2_t/T/aon_vref_ro",
	[0x31] = "multiport2_t/T/aopm",
	[0x32] = "multiport2_t/T/car",
	[0x33] = "multiport2_t/T/pmc",
	[0x34] = "ast1_t/T/0",
	[0x35] = "cbb_t/T/0",
	[0x36] = "cpu_t/T/0",
	[0x37] = "firewall_t/T/0",
	[0x38] = "svc_t/T/0",
	[0x39] = "uartc/T/uartc",
	[0x3a] = "RESERVED",
	[0x3b] = "RESERVED",
	[0x3c] = "RESERVED",
	[0x3d] = "RESERVED",
	[0x3e] = "RESERVED",
	[0x3f] = "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[] = {
	{ 0x0, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
	{ 0x0, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
	{ 0x0, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
	{ 0x0, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
	{ 0x0, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
	{ 0x0, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
	{ 0x0, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
	{ 0x0, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
	{ 0x0, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
	{ 0x0, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
	{ 0x0, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
	{ 0x0, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
	{ 0x0, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
	{ 0x0, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
	{ 0x0, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
	{ 0x0, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
	{ 0x0, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
	{ 0x0, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
	{ 0x0, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
	{ 0x0, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
	{ 0x0, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
	{ 0x0, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
	{ 0x0, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
	{ 0x0, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
	{ 0x0, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
	{ 0x0, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
	{ 0x0, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
	{ 0x0, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
	{ 0x0, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
	{ 0x0, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
	{ 0x0, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
	{ 0x0, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
	{ 0x0, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
	{ 0x0, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
	{ 0x0, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
	{ 0x0, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
	{ 0x0, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
	{ 0x0, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
	{ 0x0, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
	{ 0x0, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
	{ 0x0, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
	{ 0x0, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
	{ 0x0, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
	{ 0x0, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
	{ 0x0, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
	{ 0x0, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
	{ 0x0, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
	{ 0x0, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
	{ 0x0, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
	{ 0x0, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
	{ 0x0, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
	{ 0x0, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
	{ 0x0, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
	{ 0x0, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
	{ 0x0, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
	{ 0x0, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
	{ 0x0, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
	{ 0x0, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
	{ 0x0, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
	{ 0x0, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
	{ 0x0, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
	{ 0x0, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
	{ 0x0, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
	{ 0x0, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
	{ 0x0, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
	{ 0x0, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
	{ 0x0, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
	{ 0x0, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 },
	{ 0x1, 0x35, 0x00, 0, 0x00000000, 0,  0x00000000 },
	{ 0x1, 0x35, 0x01, 0, 0x00100000, 1,  0x00100000 },
	{ 0x1, 0x35, 0x02, 0, 0x05a00000, 11, 0x05a00000 },
	{ 0x1, 0x35, 0x03, 0, 0x05b00000, 32, 0x05b00000 },
	{ 0x1, 0x35, 0x04, 0, 0x05c00000, 33, 0x05c00000 },
	{ 0x1, 0x35, 0x05, 0, 0x05d00000, 12, 0x05d00000 },
	{ 0x1, 0x35, 0x06, 0, 0x20000000, 19, 0x20000000 },
	{ 0x1, 0x35, 0x07, 0, 0x20100000, 20, 0x20100000 },
	{ 0x1, 0x35, 0x08, 0, 0x20a00000, 24, 0x20a00000 },
	{ 0x1, 0x35, 0x09, 0, 0x20d00000, 25, 0x20d00000 },
	{ 0x1, 0x35, 0x0a, 0, 0x00200000, 2,  0x00200000 },
	{ 0x1, 0x35, 0x0b, 0, 0x05800000, 10, 0x05800000 },
	{ 0x1, 0x35, 0x0c, 0, 0x05e00000, 13, 0x05e00000 },
	{ 0x1, 0x35, 0x0d, 0, 0x20200000, 21, 0x20200000 },
	{ 0x1, 0x35, 0x0e, 0, 0x20800000, 23, 0x20800000 },
	{ 0x1, 0x35, 0x0f, 0, 0x20e00000, 26, 0x20e00000 },
	{ 0x1, 0x35, 0x10, 0, 0x00400000, 3,  0x00400000 },
	{ 0x1, 0x35, 0x11, 0, 0x20400000, 22, 0x20400000 },
	{ 0x1, 0x35, 0x12, 0, 0x00800000, 4,  0x00800000 },
	{ 0x1, 0x35, 0x13, 0, 0x05000000, 9,  0x05000000 },
	{ 0x1, 0x35, 0x14, 0, 0x0c800000, 34, 0x0c800000 },
	{ 0x1, 0x35, 0x15, 0, 0x01000000, 5,  0x01000000 },
	{ 0x1, 0x35, 0x16, 0, 0x03000000, 7,  0x03000000 },
	{ 0x1, 0x35, 0x17, 0, 0x04000000, 8,  0x04000000 },
	{ 0x1, 0x35, 0x18, 0, 0x0d000000, 16, 0x0d000000 },
	{ 0x1, 0x35, 0x19, 0, 0x21000000, 27, 0x21000000 },
	{ 0x1, 0x35, 0x1a, 0, 0x02000000, 6,  0x02000000 },
	{ 0x1, 0x35, 0x1b, 0, 0x06000000, 14, 0x06000000 },
	{ 0x1, 0x35, 0x1c, 0, 0x0e000000, 17, 0x0e000000 },
	{ 0x1, 0x35, 0x1d, 0, 0x22000000, 28, 0x22000000 },
	{ 0x1, 0x35, 0x1e, 0, 0x08000000, 15, 0x08000000 },
	{ 0x1, 0x35, 0x1f, 0, 0x24000000, 29, 0x24000000 },
	{ 0x1, 0x35, 0x20, 0, 0x28000000, 30, 0x28000000 },
	{ 0x1, 0x35, 0x21, 0, 0x10000000, 18, 0x10000000 },
	{ 0x1, 0x35, 0x22, 0, 0x30000000, 31, 0x30000000 },
	{ 0x1, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
	{ 0x1, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
	{ 0x1, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
	{ 0x1, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
	{ 0x1, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
	{ 0x1, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
	{ 0x1, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
	{ 0x1, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
	{ 0x1, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
	{ 0x1, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
	{ 0x1, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
	{ 0x1, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
	{ 0x1, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
	{ 0x1, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
	{ 0x1, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
	{ 0x1, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
	{ 0x1, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
	{ 0x1, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
	{ 0x1, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
	{ 0x1, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
	{ 0x1, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
	{ 0x1, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
	{ 0x1, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
	{ 0x1, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
	{ 0x1, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
	{ 0x1, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
	{ 0x1, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
	{ 0x1, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
	{ 0x1, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
	{ 0x1, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
	{ 0x1, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
	{ 0x1, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
	{ 0x1, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
	{ 0x1, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
	{ 0x1, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
	{ 0x1, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
	{ 0x1, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
	{ 0x1, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
	{ 0x1, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
	{ 0x1, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
	{ 0x1, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
	{ 0x1, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
	{ 0x1, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
	{ 0x1, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
	{ 0x1, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
	{ 0x1, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
	{ 0x1, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
	{ 0x1, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
	{ 0x1, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
	{ 0x1, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
	{ 0x1, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
	{ 0x1, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
	{ 0x1, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
	{ 0x1, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
	{ 0x1, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
	{ 0x1, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
	{ 0x1, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
	{ 0x1, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
	{ 0x1, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
	{ 0x1, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
	{ 0x1, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
	{ 0x1, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
	{ 0x1, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
	{ 0x1, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
	{ 0x1, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
	{ 0x1, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
	{ 0x1, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
	{ 0x1, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 },
	{ 0x2, 0x34, 0x00, 0, 0x40000000, 0,  0x40000000 },
	{ 0x2, 0x34, 0x01, 0, 0x80000000, 1,  0x80000000 },
	{ 0x2, 0x36, 0x00, 0, 0x0c400000, 0,  0x0c400000 },
	{ 0x2, 0x36, 0x01, 0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x35, 0x00, 0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x35, 0x01, 0, 0x00100000, 1,  0x00100000 },
	{ 0x3, 0x35, 0x02, 0, 0x05a00000, 11, 0x05a00000 },
	{ 0x3, 0x35, 0x03, 0, 0x05b00000, 32, 0x05b00000 },
	{ 0x3, 0x35, 0x04, 0, 0x05c00000, 33, 0x05c00000 },
	{ 0x3, 0x35, 0x05, 0, 0x05d00000, 12, 0x05d00000 },
	{ 0x3, 0x35, 0x06, 0, 0x20000000, 19, 0x20000000 },
	{ 0x3, 0x35, 0x07, 0, 0x20100000, 20, 0x20100000 },
	{ 0x3, 0x35, 0x08, 0, 0x20a00000, 24, 0x20a00000 },
	{ 0x3, 0x35, 0x09, 0, 0x20d00000, 25, 0x20d00000 },
	{ 0x3, 0x35, 0x0a, 0, 0x00200000, 2,  0x00200000 },
	{ 0x3, 0x35, 0x0b, 0, 0x05800000, 10, 0x05800000 },
	{ 0x3, 0x35, 0x0c, 0, 0x05e00000, 13, 0x05e00000 },
	{ 0x3, 0x35, 0x0d, 0, 0x20200000, 21, 0x20200000 },
	{ 0x3, 0x35, 0x0e, 0, 0x20800000, 23, 0x20800000 },
	{ 0x3, 0x35, 0x0f, 0, 0x20e00000, 26, 0x20e00000 },
	{ 0x3, 0x35, 0x10, 0, 0x00400000, 3,  0x00400000 },
	{ 0x3, 0x35, 0x11, 0, 0x20400000, 22, 0x20400000 },
	{ 0x3, 0x35, 0x12, 0, 0x00800000, 4,  0x00800000 },
	{ 0x3, 0x35, 0x13, 0, 0x50000000, 9,  0x05000000 },
	{ 0x3, 0x35, 0x14, 0, 0xc0800000, 34, 0x0c800000 },
	{ 0x3, 0x35, 0x15, 0, 0x10000000, 5,  0x01000000 },
	{ 0x3, 0x35, 0x16, 0, 0x30000000, 7,  0x03000000 },
	{ 0x3, 0x35, 0x17, 0, 0x04000000, 8,  0x04000000 },
	{ 0x3, 0x35, 0x18, 0, 0x0d000000, 16, 0x0d000000 },
	{ 0x3, 0x35, 0x19, 0, 0x21000000, 27, 0x21000000 },
	{ 0x3, 0x35, 0x1a, 0, 0x02000000, 6,  0x02000000 },
	{ 0x3, 0x35, 0x1b, 0, 0x06000000, 14, 0x06000000 },
	{ 0x3, 0x35, 0x1c, 0, 0x0e000000, 17, 0x0e000000 },
	{ 0x3, 0x35, 0x1d, 0, 0x22000000, 28, 0x22000000 },
	{ 0x3, 0x35, 0x1e, 0, 0x08000000, 15, 0x08000000 },
	{ 0x3, 0x35, 0x1f, 0, 0x24000000, 29, 0x24000000 },
	{ 0x3, 0x35, 0x20, 0, 0x28000000, 30, 0x28000000 },
	{ 0x3, 0x35, 0x21, 0, 0x10000000, 18, 0x10000000 },
	{ 0x3, 0x35, 0x22, 0, 0x30000000, 31, 0x30000000 },
	{ 0x3, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
	{ 0x3, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
	{ 0x3, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
	{ 0x3, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
	{ 0x3, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
	{ 0x3, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
	{ 0x3, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
	{ 0x3, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
	{ 0x3, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
	{ 0x3, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
	{ 0x3, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
	{ 0x3, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
	{ 0x3, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
	{ 0x3, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
	{ 0x3, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
	{ 0x3, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
	{ 0x3, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
	{ 0x3, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
	{ 0x3, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
	{ 0x3, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
	{ 0x3, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
	{ 0x3, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
	{ 0x3, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
	{ 0x3, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
	{ 0x3, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
	{ 0x3, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
	{ 0x3, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
	{ 0x3, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
	{ 0x3, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
	{ 0x3, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
	{ 0x3, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
	{ 0x3, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
	{ 0x3, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
	{ 0x3, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
	{ 0x3, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
	{ 0x3, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
	{ 0x3, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
	{ 0x3, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
	{ 0x3, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
	{ 0x3, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
	{ 0x3, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
	{ 0x3, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
	{ 0x3, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
	{ 0x3, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
	{ 0x3, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
	{ 0x3, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
	{ 0x3, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
	{ 0x3, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
	{ 0x3, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
	{ 0x3, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
	{ 0x3, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
	{ 0x3, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
	{ 0x3, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
	{ 0x3, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
	{ 0x3, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
	{ 0x3, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
	{ 0x3, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
	{ 0x3, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
	{ 0x3, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
	{ 0x3, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
	{ 0x3, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
	{ 0x3, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
	{ 0x3, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
	{ 0x3, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
	{ 0x3, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
	{ 0x3, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
	{ 0x3, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 }
};

/*
 * SCE/RCE NOC aperture lookup table as per file "AON_NOC_Structure.info".
 */
static const char * const tegra194_scenoc_routeid_initflow[] = {
	[0x0] = "cbb_i/I/0",
	[0x1] = "cpu_m_i/I/0",
	[0x2] = "cpu_p_i/I/0",
	[0x3] = "dma_m_i/I/0",
	[0x4] = "dma_p_i/I/0",
	[0x5] = "RESERVED",
	[0x6] = "RESERVED",
	[0x7] = "RESERVED"
};

static const char * const tegra194_scenoc_routeid_targflow[] = {
	[0x00] = "multiport0_t/T/atcm_cfg",
	[0x01] = "multiport0_t/T/car",
	[0x02] = "multiport0_t/T/cast",
	[0x03] = "multiport0_t/T/cfg",
	[0x04] = "multiport0_t/T/dast",
	[0x05] = "multiport0_t/T/dma",
	[0x06] = "multiport0_t/T/err_collator",
	[0x07] = "multiport0_t/T/err_collator_car",
	[0x08] = "multiport0_t/T/fpga_misc",
	[0x09] = "multiport0_t/T/fpga_uart",
	[0x0a] = "multiport0_t/T/gte",
	[0x0b] = "multiport0_t/T/hsp",
	[0x0c] = "multiport0_t/T/misc",
	[0x0d] = "multiport0_t/T/pm",
	[0x0e] = "multiport0_t/T/tke",
	[0x0f] = "RESERVED",
	[0x10] = "multiport1_t/T/hsm",
	[0x11] = "multiport1_t/T/vic0",
	[0x12] = "multiport1_t/T/vic1",
	[0x13] = "ast0_t/T/0",
	[0x14] = "ast1_t/T/0",
	[0x15] = "cbb_t/T/0",
	[0x16] = "cpu_t/T/0",
	[0x17] = "sce_noc_firewall/T/0",
	[0x18] = "svc_t/T/0",
	[0x19] = "RESERVED",
	[0x1a] = "RESERVED",
	[0x1b] = "RESERVED",
	[0x1c] = "RESERVED",
	[0x1d] = "RESERVED",
	[0x1e] = "RESERVED",
	[0x1f] = "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[] = {
	{ 0x0, 0x16, 0x0,  0, 0x0b400000, 0,  0x0b400000 },
	{ 0x0, 0x16, 0x1,  0, 0x0bc00000, 1,  0x0bc00000 },
	{ 0x0, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
	{ 0x0, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
	{ 0x0, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
	{ 0x0, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
	{ 0x0, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
	{ 0x0, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
	{ 0x0, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
	{ 0x0, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
	{ 0x0, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
	{ 0x0, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
	{ 0x0, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
	{ 0x0, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
	{ 0x0, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
	{ 0x0, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
	{ 0x0, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
	{ 0x0, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
	{ 0x0, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
	{ 0x0, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
	{ 0x0, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
	{ 0x0, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
	{ 0x0, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
	{ 0x0, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
	{ 0x0, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
	{ 0x0, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
	{ 0x0, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
	{ 0x0, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
	{ 0x0, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
	{ 0x0, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
	{ 0x0, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
	{ 0x0, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
	{ 0x0, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
	{ 0x0, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
	{ 0x0, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
	{ 0x0, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
	{ 0x0, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
	{ 0x0, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
	{ 0x0, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
	{ 0x0, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
	{ 0x0, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
	{ 0x0, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
	{ 0x0, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
	{ 0x0, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
	{ 0x0, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
	{ 0x0, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
	{ 0x0, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
	{ 0x0, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
	{ 0x0, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
	{ 0x0, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
	{ 0x0, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
	{ 0x0, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
	{ 0x0, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
	{ 0x0, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
	{ 0x0, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
	{ 0x0, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
	{ 0x0, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
	{ 0x0, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
	{ 0x0, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
	{ 0x0, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
	{ 0x0, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
	{ 0x0, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
	{ 0x0, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
	{ 0x0, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
	{ 0x0, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
	{ 0x0, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
	{ 0x0, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
	{ 0x0, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
	{ 0x0, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
	{ 0x0, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
	{ 0x0, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
	{ 0x0, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
	{ 0x0, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
	{ 0x0, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
	{ 0x0, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
	{ 0x0, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
	{ 0x0, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
	{ 0x0, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
	{ 0x0, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
	{ 0x0, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
	{ 0x0, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
	{ 0x0, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
	{ 0x0, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
	{ 0x0, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
	{ 0x0, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
	{ 0x0, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
	{ 0x0, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
	{ 0x0, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
	{ 0x0, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
	{ 0x0, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
	{ 0x0, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
	{ 0x0, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
	{ 0x0, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
	{ 0x0, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
	{ 0x0, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
	{ 0x0, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
	{ 0x0, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
	{ 0x0, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 },
	{ 0x1, 0x13, 0x0,  0, 0x40000000, 0,  0x40000000 },
	{ 0x1, 0x13, 0x1,  1, 0x80000000, 1,  0x80000000 },
	{ 0x1, 0x13, 0x2,  0, 0x00000000, 0,  0x00000000 },
	{ 0x2, 0x15, 0x0,  0, 0x20c00000, 8,  0x20c00000 },
	{ 0x2, 0x15, 0x1,  0, 0x21100000, 22, 0x21100000 },
	{ 0x2, 0x15, 0x2,  0, 0x20e00000, 9,  0x20e00000 },
	{ 0x2, 0x15, 0x3,  0, 0x21200000, 23, 0x21200000 },
	{ 0x2, 0x15, 0x4,  0, 0x20800000, 7,  0x20800000 },
	{ 0x2, 0x15, 0x5,  0, 0x21400000, 24, 0x21400000 },
	{ 0x2, 0x15, 0x6,  0, 0x0b000000, 18, 0x0b000000 },
	{ 0x2, 0x15, 0x7,  0, 0x0b800000, 3,  0x0b800000 },
	{ 0x2, 0x15, 0x8,  0, 0x20000000, 6,  0x20000000 },
	{ 0x2, 0x15, 0x9,  0, 0x21800000, 25, 0x21800000 },
	{ 0x2, 0x15, 0xa,  0, 0x0a000000, 2,  0x0a000000 },
	{ 0x2, 0x15, 0xb,  0, 0x0a000000, 17, 0x0a000000 },
	{ 0x2, 0x15, 0xc,  0, 0x20000000, 21, 0x20000000 },
	{ 0x2, 0x15, 0xd,  0, 0x21000000, 10, 0x21000000 },
	{ 0x2, 0x15, 0xe,  0, 0x08000000, 1,  0x08000000 },
	{ 0x2, 0x15, 0xf,  0, 0x08000000, 16, 0x08000000 },
	{ 0x2, 0x15, 0x10, 0, 0x22000000, 11, 0x22000000 },
	{ 0x2, 0x15, 0x11, 0, 0x22000000, 26, 0x22000000 },
	{ 0x2, 0x15, 0x12, 0, 0x0c000000, 4,  0x0c000000 },
	{ 0x2, 0x15, 0x13, 0, 0x0c000000, 19, 0x0c000000 },
	{ 0x2, 0x15, 0x14, 0, 0x24000000, 12, 0x24000000 },
	{ 0x2, 0x15, 0x15, 0, 0x24000000, 27, 0x24000000 },
	{ 0x2, 0x15, 0x16, 0, 0x00000000, 0,  0x00000000 },
	{ 0x2, 0x15, 0x17, 0, 0x00000000, 15, 0x00000000 },
	{ 0x2, 0x15, 0x18, 0, 0x28000000, 13, 0x28000000 },
	{ 0x2, 0x15, 0x19, 0, 0x28000000, 28, 0x28000000 },
	{ 0x2, 0x15, 0x1a, 0, 0x10000000, 5,  0x10000000 },
	{ 0x2, 0x15, 0x1b, 0, 0x10000000, 20, 0x10000000 },
	{ 0x2, 0x15, 0x1c, 0, 0x30000000, 14, 0x30000000 },
	{ 0x2, 0x15, 0x1d, 0, 0x30000000, 29, 0x30000000 },
	{ 0x2, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
	{ 0x2, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
	{ 0x2, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
	{ 0x2, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
	{ 0x2, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
	{ 0x2, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
	{ 0x2, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
	{ 0x2, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
	{ 0x2, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
	{ 0x2, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
	{ 0x2, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
	{ 0x2, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
	{ 0x2, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
	{ 0x2, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
	{ 0x2, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
	{ 0x2, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
	{ 0x2, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
	{ 0x2, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
	{ 0x2, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
	{ 0x2, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
	{ 0x2, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
	{ 0x2, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
	{ 0x2, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
	{ 0x2, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
	{ 0x2, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
	{ 0x2, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
	{ 0x2, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
	{ 0x2, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
	{ 0x2, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
	{ 0x2, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
	{ 0x2, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
	{ 0x2, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
	{ 0x2, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
	{ 0x2, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
	{ 0x2, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
	{ 0x2, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
	{ 0x2, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
	{ 0x2, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
	{ 0x2, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
	{ 0x2, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
	{ 0x2, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
	{ 0x2, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
	{ 0x2, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
	{ 0x2, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
	{ 0x2, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
	{ 0x2, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
	{ 0x2, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
	{ 0x2, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
	{ 0x2, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
	{ 0x2, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
	{ 0x2, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
	{ 0x2, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
	{ 0x2, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
	{ 0x2, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
	{ 0x2, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
	{ 0x2, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
	{ 0x2, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
	{ 0x2, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
	{ 0x2, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
	{ 0x2, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
	{ 0x2, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
	{ 0x2, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
	{ 0x2, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
	{ 0x2, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
	{ 0x2, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
	{ 0x2, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
	{ 0x2, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
	{ 0x2, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
	{ 0x2, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
	{ 0x2, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
	{ 0x2, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
	{ 0x2, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
	{ 0x2, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
	{ 0x2, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
	{ 0x2, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
	{ 0x2, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
	{ 0x2, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
	{ 0x2, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
	{ 0x2, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
	{ 0x2, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
	{ 0x2, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
	{ 0x2, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
	{ 0x2, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
	{ 0x2, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
	{ 0x2, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
	{ 0x2, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
	{ 0x2, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
	{ 0x2, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
	{ 0x2, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
	{ 0x2, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
	{ 0x2, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
	{ 0x2, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
	{ 0x2, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
	{ 0x2, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
	{ 0x2, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
	{ 0x2, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x14, 0x0,  0, 0x40000000, 0,  0x40000000 },
	{ 0x3, 0x14, 0x1,  1, 0x80000000, 1,  0x80000000 },
	{ 0x3, 0x16, 0x0,  2, 0x0b400000, 0,  0x0b400000 },
	{ 0x3, 0x16, 0x1,  2, 0x0bc00000, 1,  0x0bc00000 },
	{ 0x3, 0x16, 0x2,  0, 0x00000000, 0,  0x00000000 },
	{ 0x3, 0x16, 0x3,  0, 0x00000000, 0,  0x00000000 },
	{ 0x4, 0x15, 0x0,  0, 0x20c00000, 8,  0x20c00000 },
	{ 0x4, 0x15, 0x1,  0, 0x21100000, 22, 0x21100000 },
	{ 0x4, 0x15, 0x2,  0, 0x20e00000, 9,  0x20e00000 },
	{ 0x4, 0x15, 0x3,  0, 0x21200000, 23, 0x21200000 },
	{ 0x4, 0x15, 0x4,  0, 0x20800000, 7,  0x20800000 },
	{ 0x4, 0x15, 0x5,  0, 0x21400000, 24, 0x21400000 },
	{ 0x4, 0x15, 0x6,  0, 0x0b000000, 18, 0x0b000000 },
	{ 0x4, 0x15, 0x7,  0, 0x0b800000, 3,  0x0b800000 },
	{ 0x4, 0x15, 0x8,  0, 0x20000000, 6,  0x20000000 },
	{ 0x4, 0x15, 0x9,  0, 0x21800000, 25, 0x21800000 },
	{ 0x4, 0x15, 0xa,  0, 0x0a000000, 2,  0x0a000000 },
	{ 0x4, 0x15, 0xb,  0, 0x0a000000, 17, 0x0a000000 },
	{ 0x4, 0x15, 0xc,  0, 0x20000000, 21, 0x20000000 },
	{ 0x4, 0x15, 0xd,  0, 0x21000000, 10, 0x21000000 },
	{ 0x4, 0x15, 0xe,  0, 0x08000000, 1,  0x08000000 },
	{ 0x4, 0x15, 0xf,  0, 0x08000000, 16, 0x08000000 },
	{ 0x4, 0x15, 0x10, 0, 0x22000000, 11, 0x22000000 },
	{ 0x4, 0x15, 0x11, 0, 0x22000000, 26, 0x22000000 },
	{ 0x4, 0x15, 0x12, 0, 0x0c000000, 4,  0x0c000000 },
	{ 0x4, 0x15, 0x13, 0, 0x0c000000, 19, 0x0c000000 },
	{ 0x4, 0x15, 0x14, 0, 0x24000000, 12, 0x24000000 },
	{ 0x4, 0x15, 0x15, 0, 0x24000000, 27, 0x24000000 },
	{ 0x4, 0x15, 0x16, 0, 0x00000000, 0,  0x00000000 },
	{ 0x4, 0x15, 0x17, 0, 0x00000000, 15, 0x00000000 },
	{ 0x4, 0x15, 0x18, 0, 0x28000000, 13, 0x28000000 },
	{ 0x4, 0x15, 0x19, 0, 0x28000000, 28, 0x28000000 },
	{ 0x4, 0x15, 0x1a, 0, 0x10000000, 5,  0x10000000 },
	{ 0x4, 0x15, 0x1b, 0, 0x10000000, 20, 0x10000000 },
	{ 0x4, 0x15, 0x1c, 0, 0x30000000, 14, 0x30000000 },
	{ 0x4, 0x15, 0x1d, 0, 0x30000000, 29, 0x30000000 },
	{ 0x4, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
	{ 0x4, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
	{ 0x4, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
	{ 0x4, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
	{ 0x4, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
	{ 0x4, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
	{ 0x4, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
	{ 0x4, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
	{ 0x4, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
	{ 0x4, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
	{ 0x4, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
	{ 0x4, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
	{ 0x4, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
	{ 0x4, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
	{ 0x4, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
	{ 0x4, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
	{ 0x4, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
	{ 0x4, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
	{ 0x4, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
	{ 0x4, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
	{ 0x4, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
	{ 0x4, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
	{ 0x4, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
	{ 0x4, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
	{ 0x4, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
	{ 0x4, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
	{ 0x4, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
	{ 0x4, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
	{ 0x4, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
	{ 0x4, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
	{ 0x4, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
	{ 0x4, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
	{ 0x4, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
	{ 0x4, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
	{ 0x4, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
	{ 0x4, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
	{ 0x4, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
	{ 0x4, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
	{ 0x4, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
	{ 0x4, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
	{ 0x4, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
	{ 0x4, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
	{ 0x4, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
	{ 0x4, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
	{ 0x4, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
	{ 0x4, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
	{ 0x4, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
	{ 0x4, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
	{ 0x4, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
	{ 0x4, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
	{ 0x4, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
	{ 0x4, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
	{ 0x4, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
	{ 0x4, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
	{ 0x4, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
	{ 0x4, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
	{ 0x4, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
	{ 0x4, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
	{ 0x4, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
	{ 0x4, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
	{ 0x4, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
	{ 0x4, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
	{ 0x4, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
	{ 0x4, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
	{ 0x4, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
	{ 0x4, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
	{ 0x4, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
	{ 0x4, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
	{ 0x4, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
	{ 0x4, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
	{ 0x4, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
	{ 0x4, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
	{ 0x4, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
	{ 0x4, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
	{ 0x4, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
	{ 0x4, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
	{ 0x4, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
	{ 0x4, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
	{ 0x4, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
	{ 0x4, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
	{ 0x4, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
	{ 0x4, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
	{ 0x4, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
	{ 0x4, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
	{ 0x4, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
	{ 0x4, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
	{ 0x4, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
	{ 0x4, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
	{ 0x4, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
	{ 0x4, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
	{ 0x4, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
	{ 0x4, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
	{ 0x4, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
	{ 0x4, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
	{ 0x4, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
	{ 0x4, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 }
};

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(0xffffffff, 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  Master ID\t\t: %s\n",
			    cbb->noc->master_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 & 0x80)
		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 slave errors, all relevant error info is printed using
 * ErrLog0 only. But additional information is printed for errors from
 * APB slaves because for them:
 *  - All errors are logged as SLV(slave) 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 slave.
 *  - 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 & 0x1;
	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 slave connected
		 * to that bridge. For other NOC slaves, 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 & 0x1)
		is_fatal = print_errloggerX_info(file, cbb, 0);
	else if (errvld & 0x2)
		is_fatal = print_errloggerX_info(file, cbb, 1);
	else if (errvld & 0x4)
		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 == 0x1)
					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,
	.master_id = tegra194_master_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,
	.master_id = tegra194_master_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,
	.master_id = tegra194_master_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,
	.master_id = tegra194_master_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,
	.master_id = tegra194_master_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;
	struct resource res;
	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) {
		while (of_address_to_resource(np, cbb->num_bridges, &res) == 0)
			cbb->num_bridges++;

		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)) {
				dev_err(cbb->base.dev, "failed to map AXI2APB range\n");
				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 int 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);

	return 0;
}

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");
MODULE_LICENSE("GPL");
