162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * The driver handles Error's from Control Backbone(CBB) generated due to
662306a36Sopenharmony_ci * illegal accesses. When an error is reported from a NOC within CBB,
762306a36Sopenharmony_ci * the driver checks ErrVld status of all three Error Logger's of that NOC.
862306a36Sopenharmony_ci * It then prints debug information about failed transaction using ErrLog
962306a36Sopenharmony_ci * registers of error logger which has ErrVld set. Currently, SLV, DEC,
1062306a36Sopenharmony_ci * TMO, SEC, UNS are the codes which are supported by CBB.
1162306a36Sopenharmony_ci */
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/clk.h>
1462306a36Sopenharmony_ci#include <linux/cpufeature.h>
1562306a36Sopenharmony_ci#include <linux/debugfs.h>
1662306a36Sopenharmony_ci#include <linux/module.h>
1762306a36Sopenharmony_ci#include <linux/of.h>
1862306a36Sopenharmony_ci#include <linux/of_address.h>
1962306a36Sopenharmony_ci#include <linux/platform_device.h>
2062306a36Sopenharmony_ci#include <linux/device.h>
2162306a36Sopenharmony_ci#include <linux/io.h>
2262306a36Sopenharmony_ci#include <linux/interrupt.h>
2362306a36Sopenharmony_ci#include <linux/ioport.h>
2462306a36Sopenharmony_ci#include <soc/tegra/fuse.h>
2562306a36Sopenharmony_ci#include <soc/tegra/tegra-cbb.h>
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#define ERRLOGGER_0_ID_COREID_0     0x00000000
2862306a36Sopenharmony_ci#define ERRLOGGER_0_ID_REVISIONID_0 0x00000004
2962306a36Sopenharmony_ci#define ERRLOGGER_0_FAULTEN_0       0x00000008
3062306a36Sopenharmony_ci#define ERRLOGGER_0_ERRVLD_0        0x0000000c
3162306a36Sopenharmony_ci#define ERRLOGGER_0_ERRCLR_0        0x00000010
3262306a36Sopenharmony_ci#define ERRLOGGER_0_ERRLOG0_0       0x00000014
3362306a36Sopenharmony_ci#define ERRLOGGER_0_ERRLOG1_0       0x00000018
3462306a36Sopenharmony_ci#define ERRLOGGER_0_RSVD_00_0       0x0000001c
3562306a36Sopenharmony_ci#define ERRLOGGER_0_ERRLOG3_0       0x00000020
3662306a36Sopenharmony_ci#define ERRLOGGER_0_ERRLOG4_0       0x00000024
3762306a36Sopenharmony_ci#define ERRLOGGER_0_ERRLOG5_0       0x00000028
3862306a36Sopenharmony_ci#define ERRLOGGER_0_STALLEN_0       0x00000038
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define ERRLOGGER_1_ID_COREID_0     0x00000080
4162306a36Sopenharmony_ci#define ERRLOGGER_1_ID_REVISIONID_0 0x00000084
4262306a36Sopenharmony_ci#define ERRLOGGER_1_FAULTEN_0       0x00000088
4362306a36Sopenharmony_ci#define ERRLOGGER_1_ERRVLD_0        0x0000008c
4462306a36Sopenharmony_ci#define ERRLOGGER_1_ERRCLR_0        0x00000090
4562306a36Sopenharmony_ci#define ERRLOGGER_1_ERRLOG0_0       0x00000094
4662306a36Sopenharmony_ci#define ERRLOGGER_1_ERRLOG1_0       0x00000098
4762306a36Sopenharmony_ci#define ERRLOGGER_1_RSVD_00_0       0x0000009c
4862306a36Sopenharmony_ci#define ERRLOGGER_1_ERRLOG3_0       0x000000a0
4962306a36Sopenharmony_ci#define ERRLOGGER_1_ERRLOG4_0       0x000000a4
5062306a36Sopenharmony_ci#define ERRLOGGER_1_ERRLOG5_0       0x000000a8
5162306a36Sopenharmony_ci#define ERRLOGGER_1_STALLEN_0       0x000000b8
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci#define ERRLOGGER_2_ID_COREID_0     0x00000100
5462306a36Sopenharmony_ci#define ERRLOGGER_2_ID_REVISIONID_0 0x00000104
5562306a36Sopenharmony_ci#define ERRLOGGER_2_FAULTEN_0       0x00000108
5662306a36Sopenharmony_ci#define ERRLOGGER_2_ERRVLD_0        0x0000010c
5762306a36Sopenharmony_ci#define ERRLOGGER_2_ERRCLR_0        0x00000110
5862306a36Sopenharmony_ci#define ERRLOGGER_2_ERRLOG0_0       0x00000114
5962306a36Sopenharmony_ci#define ERRLOGGER_2_ERRLOG1_0       0x00000118
6062306a36Sopenharmony_ci#define ERRLOGGER_2_RSVD_00_0       0x0000011c
6162306a36Sopenharmony_ci#define ERRLOGGER_2_ERRLOG3_0       0x00000120
6262306a36Sopenharmony_ci#define ERRLOGGER_2_ERRLOG4_0       0x00000124
6362306a36Sopenharmony_ci#define ERRLOGGER_2_ERRLOG5_0       0x00000128
6462306a36Sopenharmony_ci#define ERRLOGGER_2_STALLEN_0       0x00000138
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci#define CBB_NOC_INITFLOW GENMASK(23, 20)
6762306a36Sopenharmony_ci#define CBB_NOC_TARGFLOW GENMASK(19, 16)
6862306a36Sopenharmony_ci#define CBB_NOC_TARG_SUBRANGE GENMASK(15, 9)
6962306a36Sopenharmony_ci#define CBB_NOC_SEQID GENMASK(8, 0)
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci#define BPMP_NOC_INITFLOW GENMASK(20, 18)
7262306a36Sopenharmony_ci#define BPMP_NOC_TARGFLOW GENMASK(17, 13)
7362306a36Sopenharmony_ci#define BPMP_NOC_TARG_SUBRANGE GENMASK(12, 9)
7462306a36Sopenharmony_ci#define BPMP_NOC_SEQID GENMASK(8, 0)
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#define AON_NOC_INITFLOW GENMASK(22, 21)
7762306a36Sopenharmony_ci#define AON_NOC_TARGFLOW GENMASK(20, 15)
7862306a36Sopenharmony_ci#define AON_NOC_TARG_SUBRANGE GENMASK(14, 9)
7962306a36Sopenharmony_ci#define AON_NOC_SEQID GENMASK(8, 0)
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci#define SCE_NOC_INITFLOW GENMASK(21, 19)
8262306a36Sopenharmony_ci#define SCE_NOC_TARGFLOW GENMASK(18, 14)
8362306a36Sopenharmony_ci#define SCE_NOC_TARG_SUBRANGE GENMASK(13, 9)
8462306a36Sopenharmony_ci#define SCE_NOC_SEQID GENMASK(8, 0)
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci#define CBB_NOC_AXCACHE GENMASK(3, 0)
8762306a36Sopenharmony_ci#define CBB_NOC_NON_MOD GENMASK(4, 4)
8862306a36Sopenharmony_ci#define CBB_NOC_AXPROT GENMASK(7, 5)
8962306a36Sopenharmony_ci#define CBB_NOC_FALCONSEC GENMASK(9, 8)
9062306a36Sopenharmony_ci#define CBB_NOC_GRPSEC GENMASK(16, 10)
9162306a36Sopenharmony_ci#define CBB_NOC_VQC GENMASK(18, 17)
9262306a36Sopenharmony_ci#define CBB_NOC_MSTR_ID GENMASK(22, 19)
9362306a36Sopenharmony_ci#define CBB_NOC_AXI_ID GENMASK(30, 23)
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci#define CLUSTER_NOC_AXCACHE GENMASK(3, 0)
9662306a36Sopenharmony_ci#define CLUSTER_NOC_AXPROT GENMASK(6, 4)
9762306a36Sopenharmony_ci#define CLUSTER_NOC_FALCONSEC GENMASK(8, 7)
9862306a36Sopenharmony_ci#define CLUSTER_NOC_GRPSEC GENMASK(15, 9)
9962306a36Sopenharmony_ci#define CLUSTER_NOC_VQC GENMASK(17, 16)
10062306a36Sopenharmony_ci#define CLUSTER_NOC_MSTR_ID GENMASK(21, 18)
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci#define CBB_ERR_OPC GENMASK(4, 1)
10362306a36Sopenharmony_ci#define CBB_ERR_ERRCODE GENMASK(10, 8)
10462306a36Sopenharmony_ci#define CBB_ERR_LEN1 GENMASK(27, 16)
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci#define DMAAPB_X_RAW_INTERRUPT_STATUS 0x2ec
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_cistruct tegra194_cbb_packet_header {
10962306a36Sopenharmony_ci	bool lock;   // [0]
11062306a36Sopenharmony_ci	u8 opc;      // [4:1]
11162306a36Sopenharmony_ci	u8 errcode;  // [10:8]= RD, RDW, RDL, RDX, WR, WRW, WRC, PRE, URG
11262306a36Sopenharmony_ci	u16 len1;    // [27:16]
11362306a36Sopenharmony_ci	bool format; // [31]  = 1 -> FlexNoC versions 2.7 & above
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_cistruct tegra194_cbb_aperture {
11762306a36Sopenharmony_ci	u8 initflow;
11862306a36Sopenharmony_ci	u8 targflow;
11962306a36Sopenharmony_ci	u8 targ_subrange;
12062306a36Sopenharmony_ci	u8 init_mapping;
12162306a36Sopenharmony_ci	u32 init_localaddress;
12262306a36Sopenharmony_ci	u8 targ_mapping;
12362306a36Sopenharmony_ci	u32 targ_localaddress;
12462306a36Sopenharmony_ci	u16 seqid;
12562306a36Sopenharmony_ci};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_cistruct tegra194_cbb_userbits {
12862306a36Sopenharmony_ci	u8 axcache;
12962306a36Sopenharmony_ci	u8 non_mod;
13062306a36Sopenharmony_ci	u8 axprot;
13162306a36Sopenharmony_ci	u8 falconsec;
13262306a36Sopenharmony_ci	u8 grpsec;
13362306a36Sopenharmony_ci	u8 vqc;
13462306a36Sopenharmony_ci	u8 mstr_id;
13562306a36Sopenharmony_ci	u8 axi_id;
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cistruct tegra194_cbb_noc_data {
13962306a36Sopenharmony_ci	const char *name;
14062306a36Sopenharmony_ci	bool erd_mask_inband_err;
14162306a36Sopenharmony_ci	const char * const *master_id;
14262306a36Sopenharmony_ci	unsigned int max_aperture;
14362306a36Sopenharmony_ci	const struct tegra194_cbb_aperture *noc_aperture;
14462306a36Sopenharmony_ci	const char * const *routeid_initflow;
14562306a36Sopenharmony_ci	const char * const *routeid_targflow;
14662306a36Sopenharmony_ci	void (*parse_routeid)(struct tegra194_cbb_aperture *info, u64 routeid);
14762306a36Sopenharmony_ci	void (*parse_userbits)(struct tegra194_cbb_userbits *usrbits, u32 elog_5);
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_cistruct tegra194_axi2apb_bridge {
15162306a36Sopenharmony_ci	struct resource res;
15262306a36Sopenharmony_ci	void __iomem *base;
15362306a36Sopenharmony_ci};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_cistruct tegra194_cbb {
15662306a36Sopenharmony_ci	struct tegra_cbb base;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci	const struct tegra194_cbb_noc_data *noc;
15962306a36Sopenharmony_ci	struct resource *res;
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci	void __iomem *regs;
16262306a36Sopenharmony_ci	unsigned int num_intr;
16362306a36Sopenharmony_ci	unsigned int sec_irq;
16462306a36Sopenharmony_ci	unsigned int nonsec_irq;
16562306a36Sopenharmony_ci	u32 errlog0;
16662306a36Sopenharmony_ci	u32 errlog1;
16762306a36Sopenharmony_ci	u32 errlog2;
16862306a36Sopenharmony_ci	u32 errlog3;
16962306a36Sopenharmony_ci	u32 errlog4;
17062306a36Sopenharmony_ci	u32 errlog5;
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	struct tegra194_axi2apb_bridge *bridges;
17362306a36Sopenharmony_ci	unsigned int num_bridges;
17462306a36Sopenharmony_ci};
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_cistatic inline struct tegra194_cbb *to_tegra194_cbb(struct tegra_cbb *cbb)
17762306a36Sopenharmony_ci{
17862306a36Sopenharmony_ci	return container_of(cbb, struct tegra194_cbb, base);
17962306a36Sopenharmony_ci}
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic LIST_HEAD(cbb_list);
18262306a36Sopenharmony_cistatic DEFINE_SPINLOCK(cbb_lock);
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_cistatic const char * const tegra194_cbb_trantype[] = {
18562306a36Sopenharmony_ci	"RD  - Read, Incrementing",
18662306a36Sopenharmony_ci	"RDW - Read, Wrap",			/* Not Supported */
18762306a36Sopenharmony_ci	"RDX - Exclusive Read",			/* Not Supported */
18862306a36Sopenharmony_ci	"RDL - Linked Read",			/* Not Supported */
18962306a36Sopenharmony_ci	"WR  - Write, Incrementing",
19062306a36Sopenharmony_ci	"WRW - Write, Wrap",			/* Not Supported */
19162306a36Sopenharmony_ci	"WRC - Exclusive Write",		/* Not Supported */
19262306a36Sopenharmony_ci	"PRE - Preamble Sequence for Fixed Accesses"
19362306a36Sopenharmony_ci};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_cistatic const char * const tegra194_axi2apb_error[] = {
19662306a36Sopenharmony_ci	"SFIFONE - Status FIFO Not Empty interrupt",
19762306a36Sopenharmony_ci	"SFIFOF - Status FIFO Full interrupt",
19862306a36Sopenharmony_ci	"TIM - Timer(Timeout) interrupt",
19962306a36Sopenharmony_ci	"SLV - SLVERR interrupt",
20062306a36Sopenharmony_ci	"NULL",
20162306a36Sopenharmony_ci	"ERBF - Early response buffer Full interrupt",
20262306a36Sopenharmony_ci	"NULL",
20362306a36Sopenharmony_ci	"RDFIFOF - Read Response FIFO Full interrupt",
20462306a36Sopenharmony_ci	"WRFIFOF - Write Response FIFO Full interrupt",
20562306a36Sopenharmony_ci	"CH0DFIFOF - Ch0 Data FIFO Full interrupt",
20662306a36Sopenharmony_ci	"CH1DFIFOF - Ch1 Data FIFO Full interrupt",
20762306a36Sopenharmony_ci	"CH2DFIFOF - Ch2 Data FIFO Full interrupt",
20862306a36Sopenharmony_ci	"UAT - Unsupported alignment type error",
20962306a36Sopenharmony_ci	"UBS - Unsupported burst size error",
21062306a36Sopenharmony_ci	"UBE - Unsupported Byte Enable error",
21162306a36Sopenharmony_ci	"UBT - Unsupported burst type error",
21262306a36Sopenharmony_ci	"BFS - Block Firewall security error",
21362306a36Sopenharmony_ci	"ARFS - Address Range Firewall security error",
21462306a36Sopenharmony_ci	"CH0RFIFOF - Ch0 Request FIFO Full interrupt",
21562306a36Sopenharmony_ci	"CH1RFIFOF - Ch1 Request FIFO Full interrupt",
21662306a36Sopenharmony_ci	"CH2RFIFOF - Ch2 Request FIFO Full interrupt"
21762306a36Sopenharmony_ci};
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_cistatic const char * const tegra194_master_id[] = {
22062306a36Sopenharmony_ci	[0x0] = "CCPLEX",
22162306a36Sopenharmony_ci	[0x1] = "CCPLEX_DPMU",
22262306a36Sopenharmony_ci	[0x2] = "BPMP",
22362306a36Sopenharmony_ci	[0x3] = "AON",
22462306a36Sopenharmony_ci	[0x4] = "SCE",
22562306a36Sopenharmony_ci	[0x5] = "GPCDMA_PERIPHERAL",
22662306a36Sopenharmony_ci	[0x6] = "TSECA",
22762306a36Sopenharmony_ci	[0x7] = "TSECB",
22862306a36Sopenharmony_ci	[0x8] = "JTAGM_DFT",
22962306a36Sopenharmony_ci	[0x9] = "CORESIGHT_AXIAP",
23062306a36Sopenharmony_ci	[0xa] = "APE",
23162306a36Sopenharmony_ci	[0xb] = "PEATR",
23262306a36Sopenharmony_ci	[0xc] = "NVDEC",
23362306a36Sopenharmony_ci	[0xd] = "RCE",
23462306a36Sopenharmony_ci	[0xe] = "NVDEC1"
23562306a36Sopenharmony_ci};
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_cistatic const struct tegra_cbb_error tegra194_cbb_errors[] = {
23862306a36Sopenharmony_ci	{
23962306a36Sopenharmony_ci		.code = "SLV",
24062306a36Sopenharmony_ci		.source = "Target",
24162306a36Sopenharmony_ci		.desc = "Target error detected by CBB slave"
24262306a36Sopenharmony_ci	}, {
24362306a36Sopenharmony_ci		.code = "DEC",
24462306a36Sopenharmony_ci		.source = "Initiator NIU",
24562306a36Sopenharmony_ci		.desc = "Address decode error"
24662306a36Sopenharmony_ci	}, {
24762306a36Sopenharmony_ci		.code = "UNS",
24862306a36Sopenharmony_ci		.source = "Target NIU",
24962306a36Sopenharmony_ci		.desc = "Unsupported request. Not a valid transaction"
25062306a36Sopenharmony_ci	}, {
25162306a36Sopenharmony_ci		.code = "DISC", /* Not Supported by CBB */
25262306a36Sopenharmony_ci		.source = "Power Disconnect",
25362306a36Sopenharmony_ci		.desc = "Disconnected target or domain"
25462306a36Sopenharmony_ci	}, {
25562306a36Sopenharmony_ci		.code = "SEC",
25662306a36Sopenharmony_ci		.source = "Initiator NIU or Firewall",
25762306a36Sopenharmony_ci		.desc = "Security violation. Firewall error"
25862306a36Sopenharmony_ci	}, {
25962306a36Sopenharmony_ci		.code = "HIDE", /* Not Supported by CBB */
26062306a36Sopenharmony_ci		.source = "Firewall",
26162306a36Sopenharmony_ci		.desc = "Hidden security violation, reported as OK to initiator"
26262306a36Sopenharmony_ci	}, {
26362306a36Sopenharmony_ci		.code = "TMO",
26462306a36Sopenharmony_ci		.source = "Target NIU",
26562306a36Sopenharmony_ci		.desc = "Target time-out error"
26662306a36Sopenharmony_ci	}, {
26762306a36Sopenharmony_ci		.code = "RSV",
26862306a36Sopenharmony_ci		.source = "None",
26962306a36Sopenharmony_ci		.desc = "Reserved"
27062306a36Sopenharmony_ci	}
27162306a36Sopenharmony_ci};
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci/*
27462306a36Sopenharmony_ci * CBB NOC aperture lookup table as per file "cbb_central_noc_Structure.info".
27562306a36Sopenharmony_ci */
27662306a36Sopenharmony_cistatic const char * const tegra194_cbbcentralnoc_routeid_initflow[] = {
27762306a36Sopenharmony_ci	[0x0] = "aon_p2ps/I/aon",
27862306a36Sopenharmony_ci	[0x1] = "ape_p2ps/I/ape_p2ps",
27962306a36Sopenharmony_ci	[0x2] = "bpmp_p2ps/I/bpmp_p2ps",
28062306a36Sopenharmony_ci	[0x3] = "ccroc_p2ps/I/ccroc_p2ps",
28162306a36Sopenharmony_ci	[0x4] = "csite_p2ps/I/0",
28262306a36Sopenharmony_ci	[0x5] = "gpcdma_mmio_p2ps/I/0",
28362306a36Sopenharmony_ci	[0x6] = "jtag_p2ps/I/0",
28462306a36Sopenharmony_ci	[0x7] = "nvdec1_p2ps/I/0",
28562306a36Sopenharmony_ci	[0x8] = "nvdec_p2ps/I/0",
28662306a36Sopenharmony_ci	[0x9] = "rce_p2ps/I/rce_p2ps",
28762306a36Sopenharmony_ci	[0xa] = "sce_p2ps/I/sce_p2ps",
28862306a36Sopenharmony_ci	[0xb] = "tseca_p2ps/I/0",
28962306a36Sopenharmony_ci	[0xc] = "tsecb_p2ps/I/0",
29062306a36Sopenharmony_ci	[0xd] = "RESERVED",
29162306a36Sopenharmony_ci	[0xe] = "RESERVED",
29262306a36Sopenharmony_ci	[0xf] = "RESERVED"
29362306a36Sopenharmony_ci};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_cistatic const char * const tegra194_cbbcentralnoc_routeid_targflow[] = {
29662306a36Sopenharmony_ci	[0x0] = "SVC/T/intreg",
29762306a36Sopenharmony_ci	[0x1] = "axis_satellite_axi2apb_p2pm/T/axis_satellite_axi2apb_p2pm",
29862306a36Sopenharmony_ci	[0x2] = "axis_satellite_grout/T/axis_satellite_grout",
29962306a36Sopenharmony_ci	[0x3] = "cbb_firewall/T/cbb_firewall",
30062306a36Sopenharmony_ci	[0x4] = "gpu_p2pm/T/gpu_p2pm",
30162306a36Sopenharmony_ci	[0x5] = "host1x_p2pm/T/host1x_p2pm",
30262306a36Sopenharmony_ci	[0x6] = "sapb_3_p2pm/T/sapb_3_p2pm",
30362306a36Sopenharmony_ci	[0x7] = "smmu0_p2pm/T/smmu0_p2pm",
30462306a36Sopenharmony_ci	[0x8] = "smmu1_p2pm/T/smmu1_p2pm",
30562306a36Sopenharmony_ci	[0x9] = "smmu2_p2pm/T/smmu2_p2pm",
30662306a36Sopenharmony_ci	[0xa] = "stm_p2pm/T/stm_p2pm",
30762306a36Sopenharmony_ci	[0xb] = "RESERVED",
30862306a36Sopenharmony_ci	[0xc] = "RESERVED",
30962306a36Sopenharmony_ci	[0xd] = "RESERVED",
31062306a36Sopenharmony_ci	[0xe] = "RESERVED",
31162306a36Sopenharmony_ci	[0xf] = "RESERVED"
31262306a36Sopenharmony_ci};
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ci/*
31562306a36Sopenharmony_ci * Fields of CBB NOC lookup table:
31662306a36Sopenharmony_ci * Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
31762306a36Sopenharmony_ci *                                              Targ mapping, Targ localAddress
31862306a36Sopenharmony_ci * ----------------------------------------------------------------------------
31962306a36Sopenharmony_ci */
32062306a36Sopenharmony_cistatic const struct tegra194_cbb_aperture tegra194_cbbcentralnoc_apert_lookup[] = {
32162306a36Sopenharmony_ci	{ 0x0, 0x0, 0x00, 0x0, 0x02300000,  0, 0x00000000 },
32262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x00, 0x0, 0x02003000,  0, 0x02003000 },
32362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x01, 0x0, 0x02006000,  2, 0x02006000 },
32462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x02, 0x0, 0x02016000,  3, 0x02016000 },
32562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x03, 0x0, 0x0201d000,  4, 0x0201d000 },
32662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x04, 0x0, 0x0202b000,  6, 0x0202b000 },
32762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x05, 0x0, 0x02434000, 20, 0x02434000 },
32862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x06, 0x0, 0x02436000, 21, 0x02436000 },
32962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x07, 0x0, 0x02438000, 22, 0x02438000 },
33062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x08, 0x0, 0x02445000, 24, 0x02445000 },
33162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x09, 0x0, 0x02446000, 25, 0x02446000 },
33262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0a, 0x0, 0x02004000,  1, 0x02004000 },
33362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0b, 0x0, 0x0201e000,  5, 0x0201e000 },
33462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0c, 0x0, 0x0202c000,  7, 0x0202c000 },
33562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0d, 0x0, 0x02204000,  8, 0x02204000 },
33662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0e, 0x0, 0x02214000,  9, 0x02214000 },
33762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x0f, 0x0, 0x02224000, 10, 0x02224000 },
33862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x10, 0x0, 0x02234000, 11, 0x02234000 },
33962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x11, 0x0, 0x02244000, 12, 0x02244000 },
34062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x12, 0x0, 0x02254000, 13, 0x02254000 },
34162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x13, 0x0, 0x02264000, 14, 0x02264000 },
34262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x14, 0x0, 0x02274000, 15, 0x02274000 },
34362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x15, 0x0, 0x02284000, 16, 0x02284000 },
34462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x16, 0x0, 0x0243a000, 23, 0x0243a000 },
34562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x17, 0x0, 0x02370000, 17, 0x02370000 },
34662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x18, 0x0, 0x023d0000, 18, 0x023d0000 },
34762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x19, 0x0, 0x023e0000, 19, 0x023e0000 },
34862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1a, 0x0, 0x02450000, 26, 0x02450000 },
34962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1b, 0x0, 0x02460000, 27, 0x02460000 },
35062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1c, 0x0, 0x02490000, 28, 0x02490000 },
35162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1d, 0x0, 0x03130000, 31, 0x03130000 },
35262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1e, 0x0, 0x03160000, 32, 0x03160000 },
35362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x1f, 0x0, 0x03270000, 33, 0x03270000 },
35462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x20, 0x0, 0x032e0000, 35, 0x032e0000 },
35562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x21, 0x0, 0x03300000, 36, 0x03300000 },
35662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x22, 0x0, 0x13090000, 40, 0x13090000 },
35762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x23, 0x0, 0x20120000, 43, 0x20120000 },
35862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x24, 0x0, 0x20170000, 44, 0x20170000 },
35962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x25, 0x0, 0x20190000, 45, 0x20190000 },
36062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x26, 0x0, 0x201b0000, 46, 0x201b0000 },
36162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x27, 0x0, 0x20250000, 47, 0x20250000 },
36262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x28, 0x0, 0x20260000, 48, 0x20260000 },
36362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x29, 0x0, 0x20420000, 49, 0x20420000 },
36462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2a, 0x0, 0x20460000, 50, 0x20460000 },
36562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2b, 0x0, 0x204f0000, 51, 0x204f0000 },
36662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2c, 0x0, 0x20520000, 52, 0x20520000 },
36762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2d, 0x0, 0x20580000, 53, 0x20580000 },
36862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2e, 0x0, 0x205a0000, 54, 0x205a0000 },
36962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x2f, 0x0, 0x205c0000, 55, 0x205c0000 },
37062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x30, 0x0, 0x20690000, 56, 0x20690000 },
37162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x31, 0x0, 0x20770000, 57, 0x20770000 },
37262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x32, 0x0, 0x20790000, 58, 0x20790000 },
37362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x33, 0x0, 0x20880000, 59, 0x20880000 },
37462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x34, 0x0, 0x20990000, 62, 0x20990000 },
37562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x35, 0x0, 0x20e10000, 65, 0x20e10000 },
37662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x36, 0x0, 0x20e70000, 66, 0x20e70000 },
37762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x37, 0x0, 0x20e80000, 67, 0x20e80000 },
37862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x38, 0x0, 0x20f30000, 68, 0x20f30000 },
37962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x39, 0x0, 0x20f50000, 69, 0x20f50000 },
38062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3a, 0x0, 0x20fc0000, 70, 0x20fc0000 },
38162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3b, 0x0, 0x21110000, 72, 0x21110000 },
38262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3c, 0x0, 0x21270000, 73, 0x21270000 },
38362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3d, 0x0, 0x21290000, 74, 0x21290000 },
38462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3e, 0x0, 0x21840000, 75, 0x21840000 },
38562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x3f, 0x0, 0x21880000, 76, 0x21880000 },
38662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x40, 0x0, 0x218d0000, 77, 0x218d0000 },
38762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x41, 0x0, 0x21950000, 78, 0x21950000 },
38862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x42, 0x0, 0x21960000, 79, 0x21960000 },
38962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x43, 0x0, 0x21a10000, 80, 0x21a10000 },
39062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x44, 0x0, 0x024a0000, 29, 0x024a0000 },
39162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x45, 0x0, 0x024c0000, 30, 0x024c0000 },
39262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x46, 0x0, 0x032c0000, 34, 0x032c0000 },
39362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x47, 0x0, 0x03400000, 37, 0x03400000 },
39462306a36Sopenharmony_ci	{ 0x0, 0x1, 0x48, 0x0, 0x130a0000, 41, 0x130a0000 },
39562306a36Sopenharmony_ci	{ 0x0, 0x1, 0x49, 0x0, 0x130c0000, 42, 0x130c0000 },
39662306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4a, 0x0, 0x208a0000, 60, 0x208a0000 },
39762306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4b, 0x0, 0x208c0000, 61, 0x208c0000 },
39862306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4c, 0x0, 0x209a0000, 63, 0x209a0000 },
39962306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4d, 0x0, 0x21a40000, 81, 0x21a40000 },
40062306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4e, 0x0, 0x03440000, 38, 0x03440000 },
40162306a36Sopenharmony_ci	{ 0x0, 0x1, 0x4f, 0x0, 0x20d00000, 64, 0x20d00000 },
40262306a36Sopenharmony_ci	{ 0x0, 0x1, 0x50, 0x0, 0x21000000, 71, 0x21000000 },
40362306a36Sopenharmony_ci	{ 0x0, 0x1, 0x51, 0x0, 0x0b000000, 39, 0x0b000000 },
40462306a36Sopenharmony_ci	{ 0x0, 0x2, 0x00, 0x0, 0x00000000,  0, 0x00000000 },
40562306a36Sopenharmony_ci	{ 0x0, 0x3, 0x00, 0x0, 0x02340000,  0, 0x00000000 },
40662306a36Sopenharmony_ci	{ 0x0, 0x4, 0x00, 0x0, 0x17000000,  0, 0x17000000 },
40762306a36Sopenharmony_ci	{ 0x0, 0x4, 0x01, 0x0, 0x18000000,  1, 0x18000000 },
40862306a36Sopenharmony_ci	{ 0x0, 0x5, 0x00, 0x0, 0x13e80000,  1, 0x13e80000 },
40962306a36Sopenharmony_ci	{ 0x0, 0x5, 0x01, 0x0, 0x15810000, 12, 0x15810000 },
41062306a36Sopenharmony_ci	{ 0x0, 0x5, 0x02, 0x0, 0x15840000, 14, 0x15840000 },
41162306a36Sopenharmony_ci	{ 0x0, 0x5, 0x03, 0x0, 0x15a40000, 17, 0x15a40000 },
41262306a36Sopenharmony_ci	{ 0x0, 0x5, 0x04, 0x0, 0x13f00000,  3, 0x13f00000 },
41362306a36Sopenharmony_ci	{ 0x0, 0x5, 0x05, 0x0, 0x15820000, 13, 0x15820000 },
41462306a36Sopenharmony_ci	{ 0x0, 0x5, 0x06, 0x0, 0x13ec0000,  2, 0x13ec0000 },
41562306a36Sopenharmony_ci	{ 0x0, 0x5, 0x07, 0x0, 0x15200000,  6, 0x15200000 },
41662306a36Sopenharmony_ci	{ 0x0, 0x5, 0x08, 0x0, 0x15340000,  7, 0x15340000 },
41762306a36Sopenharmony_ci	{ 0x0, 0x5, 0x09, 0x0, 0x15380000,  8, 0x15380000 },
41862306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0a, 0x0, 0x15500000, 10, 0x15500000 },
41962306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0b, 0x0, 0x155c0000, 11, 0x155c0000 },
42062306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0c, 0x0, 0x15a00000, 16, 0x15a00000 },
42162306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0d, 0x0, 0x13e00000,  0, 0x13e00000 },
42262306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0e, 0x0, 0x15100000,  5, 0x15100000 },
42362306a36Sopenharmony_ci	{ 0x0, 0x5, 0x0f, 0x0, 0x15480000,  9, 0x15480000 },
42462306a36Sopenharmony_ci	{ 0x0, 0x5, 0x10, 0x0, 0x15880000, 15, 0x15880000 },
42562306a36Sopenharmony_ci	{ 0x0, 0x5, 0x11, 0x0, 0x15a80000, 18, 0x15a80000 },
42662306a36Sopenharmony_ci	{ 0x0, 0x5, 0x12, 0x0, 0x15b00000, 19, 0x15b00000 },
42762306a36Sopenharmony_ci	{ 0x0, 0x5, 0x13, 0x0, 0x14800000,  4, 0x14800000 },
42862306a36Sopenharmony_ci	{ 0x0, 0x5, 0x14, 0x0, 0x15c00000, 20, 0x15c00000 },
42962306a36Sopenharmony_ci	{ 0x0, 0x5, 0x15, 0x0, 0x16000000, 21, 0x16000000 },
43062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x00, 0x0, 0x02000000,  4, 0x02000000 },
43162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x01, 0x0, 0x02007000,  5, 0x02007000 },
43262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x02, 0x0, 0x02008000,  6, 0x02008000 },
43362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x03, 0x0, 0x02013000,  7, 0x02013000 },
43462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x04, 0x0, 0x0201c000,  8, 0x0201c000 },
43562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x05, 0x0, 0x02020000,  9, 0x02020000 },
43662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x06, 0x0, 0x0202a000, 10, 0x0202a000 },
43762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x07, 0x0, 0x0202e000, 11, 0x0202e000 },
43862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x08, 0x0, 0x06400000, 33, 0x06400000 },
43962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x09, 0x0, 0x02038000, 12, 0x02038000 },
44062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0a, 0x0, 0x00100000,  0, 0x00100000 },
44162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0b, 0x0, 0x023b0000, 13, 0x023b0000 },
44262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0c, 0x0, 0x02800000, 16, 0x02800000 },
44362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0d, 0x0, 0x030e0000, 22, 0x030e0000 },
44462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0e, 0x0, 0x03800000, 23, 0x03800000 },
44562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x0f, 0x0, 0x03980000, 25, 0x03980000 },
44662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x10, 0x0, 0x03a60000, 26, 0x03a60000 },
44762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x11, 0x0, 0x03d80000, 31, 0x03d80000 },
44862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x12, 0x0, 0x20000000, 36, 0x20000000 },
44962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x13, 0x0, 0x20050000, 38, 0x20050000 },
45062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x14, 0x0, 0x201e0000, 40, 0x201e0000 },
45162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x15, 0x0, 0x20280000, 42, 0x20280000 },
45262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x16, 0x0, 0x202c0000, 43, 0x202c0000 },
45362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x17, 0x0, 0x20390000, 44, 0x20390000 },
45462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x18, 0x0, 0x20430000, 45, 0x20430000 },
45562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x19, 0x0, 0x20440000, 46, 0x20440000 },
45662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1a, 0x0, 0x204e0000, 47, 0x204e0000 },
45762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1b, 0x0, 0x20550000, 48, 0x20550000 },
45862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1c, 0x0, 0x20570000, 49, 0x20570000 },
45962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1d, 0x0, 0x20590000, 50, 0x20590000 },
46062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1e, 0x0, 0x20730000, 52, 0x20730000 },
46162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x1f, 0x0, 0x209f0000, 54, 0x209f0000 },
46262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x20, 0x0, 0x20e20000, 55, 0x20e20000 },
46362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x21, 0x0, 0x20ed0000, 56, 0x20ed0000 },
46462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x22, 0x0, 0x20fd0000, 57, 0x20fd0000 },
46562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x23, 0x0, 0x21120000, 59, 0x21120000 },
46662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x24, 0x0, 0x211a0000, 60, 0x211a0000 },
46762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x25, 0x0, 0x21850000, 61, 0x21850000 },
46862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x26, 0x0, 0x21860000, 62, 0x21860000 },
46962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x27, 0x0, 0x21890000, 63, 0x21890000 },
47062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x28, 0x0, 0x21970000, 64, 0x21970000 },
47162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x29, 0x0, 0x21990000, 65, 0x21990000 },
47262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2a, 0x0, 0x21a00000, 66, 0x21a00000 },
47362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2b, 0x0, 0x21a90000, 68, 0x21a90000 },
47462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2c, 0x0, 0x21ac0000, 70, 0x21ac0000 },
47562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2d, 0x0, 0x01f80000,  3, 0x01f80000 },
47662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2e, 0x0, 0x024e0000, 14, 0x024e0000 },
47762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x2f, 0x0, 0x030c0000, 21, 0x030c0000 },
47862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x30, 0x0, 0x03820000, 24, 0x03820000 },
47962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x31, 0x0, 0x03aa0000, 27, 0x03aa0000 },
48062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x32, 0x0, 0x03c80000, 29, 0x03c80000 },
48162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x33, 0x0, 0x130e0000, 34, 0x130e0000 },
48262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x34, 0x0, 0x20020000, 37, 0x20020000 },
48362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x35, 0x0, 0x20060000, 39, 0x20060000 },
48462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x36, 0x0, 0x20200000, 41, 0x20200000 },
48562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x37, 0x0, 0x206a0000, 51, 0x206a0000 },
48662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x38, 0x0, 0x20740000, 53, 0x20740000 },
48762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x39, 0x0, 0x20fe0000, 58, 0x20fe0000 },
48862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3a, 0x0, 0x21a20000, 67, 0x21a20000 },
48962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3b, 0x0, 0x21aa0000, 69, 0x21aa0000 },
49062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3c, 0x0, 0x02b80000, 17, 0x02b80000 },
49162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3d, 0x0, 0x03080000, 20, 0x03080000 },
49262306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3e, 0x0, 0x13100000, 35, 0x13100000 },
49362306a36Sopenharmony_ci	{ 0x0, 0x6, 0x3f, 0x0, 0x01f00000,  2, 0x01f00000 },
49462306a36Sopenharmony_ci	{ 0x0, 0x6, 0x40, 0x0, 0x03000000, 19, 0x03000000 },
49562306a36Sopenharmony_ci	{ 0x0, 0x6, 0x41, 0x0, 0x03c00000, 28, 0x03c00000 },
49662306a36Sopenharmony_ci	{ 0x0, 0x6, 0x42, 0x0, 0x03d00000, 30, 0x03d00000 },
49762306a36Sopenharmony_ci	{ 0x0, 0x6, 0x43, 0x0, 0x01700000,  1, 0x01700000 },
49862306a36Sopenharmony_ci	{ 0x0, 0x6, 0x44, 0x0, 0x02c00000, 18, 0x02c00000 },
49962306a36Sopenharmony_ci	{ 0x0, 0x6, 0x45, 0x0, 0x02600000, 15, 0x02600000 },
50062306a36Sopenharmony_ci	{ 0x0, 0x6, 0x46, 0x0, 0x06000000, 32, 0x06000000 },
50162306a36Sopenharmony_ci	{ 0x0, 0x6, 0x47, 0x0, 0x24000000, 71, 0x24000000 },
50262306a36Sopenharmony_ci	{ 0x0, 0x7, 0x00, 0x0, 0x12000000,  0, 0x12000000 },
50362306a36Sopenharmony_ci	{ 0x0, 0x8, 0x00, 0x0, 0x11000000,  0, 0x11000000 },
50462306a36Sopenharmony_ci	{ 0x0, 0x9, 0x00, 0x0, 0x10000000,  0, 0x10000000 },
50562306a36Sopenharmony_ci	{ 0x0, 0xa, 0x00, 0x0, 0x22000000,  0, 0x22000000 }
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ci/*
50962306a36Sopenharmony_ci * BPMP NOC aperture lookup table as per file "BPMP_NOC_Structure.info".
51062306a36Sopenharmony_ci */
51162306a36Sopenharmony_cistatic const char * const tegra194_bpmpnoc_routeid_initflow[] = {
51262306a36Sopenharmony_ci	[0x0] = "cbb_i/I/0",
51362306a36Sopenharmony_ci	[0x1] = "cpu_m_i/I/0",
51462306a36Sopenharmony_ci	[0x2] = "cpu_p_i/I/0",
51562306a36Sopenharmony_ci	[0x3] = "cvc_i/I/0",
51662306a36Sopenharmony_ci	[0x4] = "dma_m_i/I/0",
51762306a36Sopenharmony_ci	[0x5] = "dma_p_i/I/0",
51862306a36Sopenharmony_ci	[0x6] = "RESERVED",
51962306a36Sopenharmony_ci	[0x7] = "RESERVED"
52062306a36Sopenharmony_ci};
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_cistatic const char * const tegra194_bpmpnoc_routeid_targflow[] = {
52362306a36Sopenharmony_ci	[0x00] = "multiport0_t/T/actmon",
52462306a36Sopenharmony_ci	[0x01] = "multiport0_t/T/ast_0",
52562306a36Sopenharmony_ci	[0x02] = "multiport0_t/T/ast_1",
52662306a36Sopenharmony_ci	[0x03] = "multiport0_t/T/atcm_cfg",
52762306a36Sopenharmony_ci	[0x04] = "multiport0_t/T/car",
52862306a36Sopenharmony_ci	[0x05] = "multiport0_t/T/central_pwr_mgr",
52962306a36Sopenharmony_ci	[0x06] = "multiport0_t/T/central_vtg_ctlr",
53062306a36Sopenharmony_ci	[0x07] = "multiport0_t/T/cfg",
53162306a36Sopenharmony_ci	[0x08] = "multiport0_t/T/dma",
53262306a36Sopenharmony_ci	[0x09] = "multiport0_t/T/err_collator",
53362306a36Sopenharmony_ci	[0x0a] = "multiport0_t/T/err_collator_car",
53462306a36Sopenharmony_ci	[0x0b] = "multiport0_t/T/fpga_misc",
53562306a36Sopenharmony_ci	[0x0c] = "multiport0_t/T/fpga_uart",
53662306a36Sopenharmony_ci	[0x0d] = "multiport0_t/T/gte",
53762306a36Sopenharmony_ci	[0x0e] = "multiport0_t/T/hsp",
53862306a36Sopenharmony_ci	[0x0f] = "multiport0_t/T/misc",
53962306a36Sopenharmony_ci	[0x10] = "multiport0_t/T/pm",
54062306a36Sopenharmony_ci	[0x11] = "multiport0_t/T/simon0",
54162306a36Sopenharmony_ci	[0x12] = "multiport0_t/T/simon1",
54262306a36Sopenharmony_ci	[0x13] = "multiport0_t/T/simon2",
54362306a36Sopenharmony_ci	[0x14] = "multiport0_t/T/simon3",
54462306a36Sopenharmony_ci	[0x15] = "multiport0_t/T/simon4",
54562306a36Sopenharmony_ci	[0x16] = "multiport0_t/T/soc_therm",
54662306a36Sopenharmony_ci	[0x17] = "multiport0_t/T/tke",
54762306a36Sopenharmony_ci	[0x18] = "multiport0_t/T/vic_0",
54862306a36Sopenharmony_ci	[0x19] = "multiport0_t/T/vic_1",
54962306a36Sopenharmony_ci	[0x1a] = "ast0_t/T/0",
55062306a36Sopenharmony_ci	[0x1b] = "ast1_t/T/0",
55162306a36Sopenharmony_ci	[0x1c] = "bpmp_noc_firewall/T/0",
55262306a36Sopenharmony_ci	[0x1d] = "cbb_t/T/0",
55362306a36Sopenharmony_ci	[0x1e] = "cpu_t/T/0",
55462306a36Sopenharmony_ci	[0x1f] = "svc_t/T/0"
55562306a36Sopenharmony_ci};
55662306a36Sopenharmony_ci
55762306a36Sopenharmony_ci/*
55862306a36Sopenharmony_ci * Fields of BPMP NOC lookup table:
55962306a36Sopenharmony_ci * Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
56062306a36Sopenharmony_ci *                                              Targ mapping, Targ localAddress
56162306a36Sopenharmony_ci * ----------------------------------------------------------------------------
56262306a36Sopenharmony_ci */
56362306a36Sopenharmony_cistatic const struct tegra194_cbb_aperture tegra194_bpmpnoc_apert_lookup[] = {
56462306a36Sopenharmony_ci	{ 0x0, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
56562306a36Sopenharmony_ci	{ 0x0, 0x1e, 0x0, 0x0, 0x0d400000, 0,  0x0d400000 },
56662306a36Sopenharmony_ci	{ 0x0, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
56762306a36Sopenharmony_ci	{ 0x0, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
56862306a36Sopenharmony_ci	{ 0x0, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
56962306a36Sopenharmony_ci	{ 0x0, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
57062306a36Sopenharmony_ci	{ 0x0, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
57162306a36Sopenharmony_ci	{ 0x0, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
57262306a36Sopenharmony_ci	{ 0x0, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
57362306a36Sopenharmony_ci	{ 0x0, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
57462306a36Sopenharmony_ci	{ 0x0, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
57562306a36Sopenharmony_ci	{ 0x0, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
57662306a36Sopenharmony_ci	{ 0x0, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
57762306a36Sopenharmony_ci	{ 0x0, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
57862306a36Sopenharmony_ci	{ 0x0, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
57962306a36Sopenharmony_ci	{ 0x0, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
58062306a36Sopenharmony_ci	{ 0x0, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
58162306a36Sopenharmony_ci	{ 0x0, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
58262306a36Sopenharmony_ci	{ 0x0, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
58362306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
58462306a36Sopenharmony_ci	{ 0x0, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
58562306a36Sopenharmony_ci	{ 0x0, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
58662306a36Sopenharmony_ci	{ 0x0, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
58762306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
58862306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
58962306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
59062306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
59162306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
59262306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
59362306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
59462306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
59562306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
59662306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
59762306a36Sopenharmony_ci	{ 0x0, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
59862306a36Sopenharmony_ci	{ 0x0, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
59962306a36Sopenharmony_ci	{ 0x0, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
60062306a36Sopenharmony_ci	{ 0x0, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
60162306a36Sopenharmony_ci	{ 0x0, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
60262306a36Sopenharmony_ci	{ 0x0, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
60362306a36Sopenharmony_ci	{ 0x0, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
60462306a36Sopenharmony_ci	{ 0x0, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
60562306a36Sopenharmony_ci	{ 0x0, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
60662306a36Sopenharmony_ci	{ 0x0, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
60762306a36Sopenharmony_ci	{ 0x0, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
60862306a36Sopenharmony_ci	{ 0x0, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
60962306a36Sopenharmony_ci	{ 0x0, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
61062306a36Sopenharmony_ci	{ 0x0, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
61162306a36Sopenharmony_ci	{ 0x0, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
61262306a36Sopenharmony_ci	{ 0x0, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
61362306a36Sopenharmony_ci	{ 0x0, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
61462306a36Sopenharmony_ci	{ 0x0, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
61562306a36Sopenharmony_ci	{ 0x0, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
61662306a36Sopenharmony_ci	{ 0x0, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
61762306a36Sopenharmony_ci	{ 0x1, 0x1a, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
61862306a36Sopenharmony_ci	{ 0x1, 0x1a, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
61962306a36Sopenharmony_ci	{ 0x1, 0x1a, 0x2, 0x0, 0x00000000, 0,  0x00000000 },
62062306a36Sopenharmony_ci	{ 0x2, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
62162306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x0, 0x0, 0x20b00000, 8,  0x20b00000 },
62262306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x1, 0x0, 0x20800000, 7,  0x20800000 },
62362306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x2, 0x0, 0x20c00000, 9,  0x20c00000 },
62462306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x3, 0x0, 0x0d800000, 3,  0x0d800000 },
62562306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x4, 0x0, 0x20000000, 6,  0x20000000 },
62662306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x5, 0x0, 0x0c000000, 2,  0x0c000000 },
62762306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x6, 0x0, 0x21000000, 10, 0x21000000 },
62862306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x7, 0x0, 0x0e000000, 4,  0x0e000000 },
62962306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x8, 0x0, 0x22000000, 11, 0x22000000 },
63062306a36Sopenharmony_ci	{ 0x2, 0x1d, 0x9, 0x0, 0x08000000, 1,  0x08000000 },
63162306a36Sopenharmony_ci	{ 0x2, 0x1d, 0xa, 0x0, 0x24000000, 12, 0x24000000 },
63262306a36Sopenharmony_ci	{ 0x2, 0x1d, 0xb, 0x0, 0x00000000, 0,  0x00000000 },
63362306a36Sopenharmony_ci	{ 0x2, 0x1d, 0xc, 0x0, 0x28000000, 13, 0x28000000 },
63462306a36Sopenharmony_ci	{ 0x2, 0x1d, 0xd, 0x0, 0x10000000, 5,  0x10000000 },
63562306a36Sopenharmony_ci	{ 0x2, 0x1d, 0xe, 0x0, 0x30000000, 14, 0x30000000 },
63662306a36Sopenharmony_ci	{ 0x2, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
63762306a36Sopenharmony_ci	{ 0x2, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
63862306a36Sopenharmony_ci	{ 0x2, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
63962306a36Sopenharmony_ci	{ 0x2, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
64062306a36Sopenharmony_ci	{ 0x2, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
64162306a36Sopenharmony_ci	{ 0x2, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
64262306a36Sopenharmony_ci	{ 0x2, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
64362306a36Sopenharmony_ci	{ 0x2, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
64462306a36Sopenharmony_ci	{ 0x2, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
64562306a36Sopenharmony_ci	{ 0x2, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
64662306a36Sopenharmony_ci	{ 0x2, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
64762306a36Sopenharmony_ci	{ 0x2, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
64862306a36Sopenharmony_ci	{ 0x2, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
64962306a36Sopenharmony_ci	{ 0x2, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
65062306a36Sopenharmony_ci	{ 0x2, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
65162306a36Sopenharmony_ci	{ 0x2, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
65262306a36Sopenharmony_ci	{ 0x2, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
65362306a36Sopenharmony_ci	{ 0x2, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
65462306a36Sopenharmony_ci	{ 0x2, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
65562306a36Sopenharmony_ci	{ 0x2, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
65662306a36Sopenharmony_ci	{ 0x2, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
65762306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
65862306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
65962306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
66062306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
66162306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
66262306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
66362306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
66462306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
66562306a36Sopenharmony_ci	{ 0x2, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
66662306a36Sopenharmony_ci	{ 0x2, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
66762306a36Sopenharmony_ci	{ 0x2, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
66862306a36Sopenharmony_ci	{ 0x2, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
66962306a36Sopenharmony_ci	{ 0x2, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
67062306a36Sopenharmony_ci	{ 0x2, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
67162306a36Sopenharmony_ci	{ 0x2, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
67262306a36Sopenharmony_ci	{ 0x2, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
67362306a36Sopenharmony_ci	{ 0x2, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
67462306a36Sopenharmony_ci	{ 0x2, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
67562306a36Sopenharmony_ci	{ 0x2, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
67662306a36Sopenharmony_ci	{ 0x2, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
67762306a36Sopenharmony_ci	{ 0x2, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
67862306a36Sopenharmony_ci	{ 0x2, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
67962306a36Sopenharmony_ci	{ 0x2, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
68062306a36Sopenharmony_ci	{ 0x2, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
68162306a36Sopenharmony_ci	{ 0x2, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
68262306a36Sopenharmony_ci	{ 0x2, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
68362306a36Sopenharmony_ci	{ 0x2, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
68462306a36Sopenharmony_ci	{ 0x2, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
68562306a36Sopenharmony_ci	{ 0x2, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
68662306a36Sopenharmony_ci	{ 0x2, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
68762306a36Sopenharmony_ci	{ 0x3, 0x1b, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
68862306a36Sopenharmony_ci	{ 0x3, 0x1b, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
68962306a36Sopenharmony_ci	{ 0x3, 0x1c, 0x0, 0x2, 0x0d640000, 0,  0x00000000 },
69062306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x0, 0x2, 0x20b00000, 8,  0x20b00000 },
69162306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x1, 0x2, 0x20800000, 7,  0x20800000 },
69262306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x2, 0x2, 0x20c00000, 9,  0x20c00000 },
69362306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x3, 0x2, 0x0d800000, 3,  0x0d800000 },
69462306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x4, 0x2, 0x20000000, 6,  0x20000000 },
69562306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x5, 0x2, 0x0c000000, 2,  0x0c000000 },
69662306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x6, 0x2, 0x21000000, 10, 0x21000000 },
69762306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x7, 0x2, 0x0e000000, 4,  0x0e000000 },
69862306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x8, 0x2, 0x22000000, 11, 0x22000000 },
69962306a36Sopenharmony_ci	{ 0x3, 0x1d, 0x9, 0x2, 0x08000000, 1,  0x08000000 },
70062306a36Sopenharmony_ci	{ 0x3, 0x1d, 0xa, 0x2, 0x24000000, 12, 0x24000000 },
70162306a36Sopenharmony_ci	{ 0x3, 0x1d, 0xb, 0x2, 0x00000000, 0,  0x00000000 },
70262306a36Sopenharmony_ci	{ 0x3, 0x1d, 0xc, 0x2, 0x28000000, 13, 0x28000000 },
70362306a36Sopenharmony_ci	{ 0x3, 0x1d, 0xd, 0x2, 0x10000000, 5,  0x10000000 },
70462306a36Sopenharmony_ci	{ 0x3, 0x1d, 0xe, 0x2, 0x30000000, 14, 0x30000000 },
70562306a36Sopenharmony_ci	{ 0x3, 0x1e, 0x0, 0x2, 0x0d400000, 0,  0x0d400000 },
70662306a36Sopenharmony_ci	{ 0x3, 0x00, 0x0, 0x2, 0x0d230000, 0,  0x00000000 },
70762306a36Sopenharmony_ci	{ 0x3, 0x01, 0x0, 0x2, 0x0d040000, 0,  0x00000000 },
70862306a36Sopenharmony_ci	{ 0x3, 0x02, 0x0, 0x2, 0x0d050000, 0,  0x00000000 },
70962306a36Sopenharmony_ci	{ 0x3, 0x03, 0x0, 0x2, 0x0d000000, 0,  0x00000000 },
71062306a36Sopenharmony_ci	{ 0x3, 0x04, 0x0, 0x2, 0x20ae0000, 3,  0x000e0000 },
71162306a36Sopenharmony_ci	{ 0x3, 0x04, 0x1, 0x2, 0x20ac0000, 2,  0x000c0000 },
71262306a36Sopenharmony_ci	{ 0x3, 0x04, 0x2, 0x2, 0x20a80000, 1,  0x00080000 },
71362306a36Sopenharmony_ci	{ 0x3, 0x04, 0x3, 0x2, 0x20a00000, 0,  0x00000000 },
71462306a36Sopenharmony_ci	{ 0x3, 0x05, 0x0, 0x2, 0x0d2a0000, 0,  0x00000000 },
71562306a36Sopenharmony_ci	{ 0x3, 0x06, 0x0, 0x2, 0x0d290000, 0,  0x00000000 },
71662306a36Sopenharmony_ci	{ 0x3, 0x07, 0x0, 0x2, 0x0d2c0000, 0,  0x00000000 },
71762306a36Sopenharmony_ci	{ 0x3, 0x08, 0x0, 0x2, 0x0d0e0000, 4,  0x00080000 },
71862306a36Sopenharmony_ci	{ 0x3, 0x08, 0x1, 0x2, 0x0d060000, 0,  0x00000000 },
71962306a36Sopenharmony_ci	{ 0x3, 0x08, 0x2, 0x2, 0x0d080000, 1,  0x00020000 },
72062306a36Sopenharmony_ci	{ 0x3, 0x08, 0x3, 0x2, 0x0d0a0000, 2,  0x00040000 },
72162306a36Sopenharmony_ci	{ 0x3, 0x08, 0x4, 0x2, 0x0d0c0000, 3,  0x00060000 },
72262306a36Sopenharmony_ci	{ 0x3, 0x09, 0x0, 0x2, 0x0d650000, 0,  0x00000000 },
72362306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x0, 0x2, 0x20af0000, 0,  0x00000000 },
72462306a36Sopenharmony_ci	{ 0x3, 0x0b, 0x0, 0x2, 0x0d3e0000, 0,  0x00000000 },
72562306a36Sopenharmony_ci	{ 0x3, 0x0c, 0x0, 0x2, 0x0d3d0000, 0,  0x00000000 },
72662306a36Sopenharmony_ci	{ 0x3, 0x0d, 0x0, 0x2, 0x0d1e0000, 0,  0x00000000 },
72762306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x0, 0x2, 0x0d150000, 0,  0x00000000 },
72862306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x1, 0x2, 0x0d160000, 1,  0x00010000 },
72962306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x2, 0x2, 0x0d170000, 2,  0x00020000 },
73062306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x3, 0x2, 0x0d180000, 3,  0x00030000 },
73162306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x4, 0x2, 0x0d190000, 4,  0x00040000 },
73262306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x5, 0x2, 0x0d1a0000, 5,  0x00050000 },
73362306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x6, 0x2, 0x0d1b0000, 6,  0x00060000 },
73462306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x7, 0x2, 0x0d1c0000, 7,  0x00070000 },
73562306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x8, 0x2, 0x0d1d0000, 8,  0x00080000 },
73662306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x0, 0x2, 0x0d660000, 0,  0x00000000 },
73762306a36Sopenharmony_ci	{ 0x3, 0x10, 0x0, 0x2, 0x0d1f0000, 0,  0x00000000 },
73862306a36Sopenharmony_ci	{ 0x3, 0x10, 0x1, 0x2, 0x0d200000, 1,  0x00010000 },
73962306a36Sopenharmony_ci	{ 0x3, 0x10, 0x2, 0x2, 0x0d210000, 2,  0x00020000 },
74062306a36Sopenharmony_ci	{ 0x3, 0x10, 0x3, 0x2, 0x0d220000, 3,  0x00030000 },
74162306a36Sopenharmony_ci	{ 0x3, 0x11, 0x0, 0x2, 0x0d240000, 0,  0x00000000 },
74262306a36Sopenharmony_ci	{ 0x3, 0x12, 0x0, 0x2, 0x0d250000, 0,  0x00000000 },
74362306a36Sopenharmony_ci	{ 0x3, 0x13, 0x0, 0x2, 0x0d260000, 0,  0x00000000 },
74462306a36Sopenharmony_ci	{ 0x3, 0x14, 0x0, 0x2, 0x0d270000, 0,  0x00000000 },
74562306a36Sopenharmony_ci	{ 0x3, 0x15, 0x0, 0x2, 0x0d2b0000, 0,  0x00000000 },
74662306a36Sopenharmony_ci	{ 0x3, 0x16, 0x0, 0x2, 0x0d280000, 0,  0x00000000 },
74762306a36Sopenharmony_ci	{ 0x3, 0x17, 0x0, 0x2, 0x0d0f0000, 0,  0x00000000 },
74862306a36Sopenharmony_ci	{ 0x3, 0x17, 0x1, 0x2, 0x0d100000, 1,  0x00010000 },
74962306a36Sopenharmony_ci	{ 0x3, 0x17, 0x2, 0x2, 0x0d110000, 2,  0x00020000 },
75062306a36Sopenharmony_ci	{ 0x3, 0x17, 0x3, 0x2, 0x0d120000, 3,  0x00030000 },
75162306a36Sopenharmony_ci	{ 0x3, 0x17, 0x4, 0x2, 0x0d130000, 4,  0x00040000 },
75262306a36Sopenharmony_ci	{ 0x3, 0x17, 0x5, 0x2, 0x0d140000, 5,  0x00050000 },
75362306a36Sopenharmony_ci	{ 0x3, 0x18, 0x0, 0x2, 0x0d020000, 0,  0x00000000 },
75462306a36Sopenharmony_ci	{ 0x3, 0x19, 0x0, 0x2, 0x0d030000, 0,  0x00000000 },
75562306a36Sopenharmony_ci	{ 0x3, 0x1f, 0x0, 0x2, 0x0d600000, 0,  0x00000000 },
75662306a36Sopenharmony_ci	{ 0x3, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
75762306a36Sopenharmony_ci	{ 0x4, 0x1b, 0x0, 0x0, 0x40000000, 0,  0x40000000 },
75862306a36Sopenharmony_ci	{ 0x4, 0x1b, 0x1, 0x1, 0x80000000, 1,  0x80000000 },
75962306a36Sopenharmony_ci	{ 0x4, 0x1e, 0x0, 0x2, 0x0d400000, 0,  0x0d400000 },
76062306a36Sopenharmony_ci	{ 0x4, 0x1e, 0x1, 0x0, 0x00000000, 0,  0x00000000 },
76162306a36Sopenharmony_ci	{ 0x5, 0x1c, 0x0, 0x0, 0x0d640000, 0,  0x00000000 },
76262306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x0, 0x0, 0x20b00000, 8,  0x20b00000 },
76362306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x1, 0x0, 0x20800000, 7,  0x20800000 },
76462306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x2, 0x0, 0x20c00000, 9,  0x20c00000 },
76562306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x3, 0x0, 0x0d800000, 3,  0x0d800000 },
76662306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x4, 0x0, 0x20000000, 6,  0x20000000 },
76762306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x5, 0x0, 0x0c000000, 2,  0x0c000000 },
76862306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x6, 0x0, 0x21000000, 10, 0x21000000 },
76962306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x7, 0x0, 0x0e000000, 4,  0x0e000000 },
77062306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x8, 0x0, 0x22000000, 11, 0x22000000 },
77162306a36Sopenharmony_ci	{ 0x5, 0x1d, 0x9, 0x0, 0x08000000, 1,  0x08000000 },
77262306a36Sopenharmony_ci	{ 0x5, 0x1d, 0xa, 0x0, 0x24000000, 12, 0x24000000 },
77362306a36Sopenharmony_ci	{ 0x5, 0x1d, 0xb, 0x0, 0x00000000, 0,  0x00000000 },
77462306a36Sopenharmony_ci	{ 0x5, 0x1d, 0xc, 0x0, 0x28000000, 13, 0x28000000 },
77562306a36Sopenharmony_ci	{ 0x5, 0x1d, 0xd, 0x0, 0x10000000, 5,  0x10000000 },
77662306a36Sopenharmony_ci	{ 0x5, 0x1d, 0xe, 0x0, 0x30000000, 14, 0x30000000 },
77762306a36Sopenharmony_ci	{ 0x5, 0x00, 0x0, 0x0, 0x0d230000, 0,  0x00000000 },
77862306a36Sopenharmony_ci	{ 0x5, 0x01, 0x0, 0x0, 0x0d040000, 0,  0x00000000 },
77962306a36Sopenharmony_ci	{ 0x5, 0x02, 0x0, 0x0, 0x0d050000, 0,  0x00000000 },
78062306a36Sopenharmony_ci	{ 0x5, 0x03, 0x0, 0x0, 0x0d000000, 0,  0x00000000 },
78162306a36Sopenharmony_ci	{ 0x5, 0x04, 0x0, 0x0, 0x20ae0000, 3,  0x000e0000 },
78262306a36Sopenharmony_ci	{ 0x5, 0x04, 0x1, 0x0, 0x20ac0000, 2,  0x000c0000 },
78362306a36Sopenharmony_ci	{ 0x5, 0x04, 0x2, 0x0, 0x20a80000, 1,  0x00080000 },
78462306a36Sopenharmony_ci	{ 0x5, 0x04, 0x3, 0x0, 0x20a00000, 0,  0x00000000 },
78562306a36Sopenharmony_ci	{ 0x5, 0x05, 0x0, 0x0, 0x0d2a0000, 0,  0x00000000 },
78662306a36Sopenharmony_ci	{ 0x5, 0x06, 0x0, 0x0, 0x0d290000, 0,  0x00000000 },
78762306a36Sopenharmony_ci	{ 0x5, 0x07, 0x0, 0x0, 0x0d2c0000, 0,  0x00000000 },
78862306a36Sopenharmony_ci	{ 0x5, 0x08, 0x0, 0x0, 0x0d0e0000, 4,  0x00080000 },
78962306a36Sopenharmony_ci	{ 0x5, 0x08, 0x1, 0x0, 0x0d060000, 0,  0x00000000 },
79062306a36Sopenharmony_ci	{ 0x5, 0x08, 0x2, 0x0, 0x0d080000, 1,  0x00020000 },
79162306a36Sopenharmony_ci	{ 0x5, 0x08, 0x3, 0x0, 0x0d0a0000, 2,  0x00040000 },
79262306a36Sopenharmony_ci	{ 0x5, 0x08, 0x4, 0x0, 0x0d0c0000, 3,  0x00060000 },
79362306a36Sopenharmony_ci	{ 0x5, 0x09, 0x0, 0x0, 0x0d650000, 0,  0x00000000 },
79462306a36Sopenharmony_ci	{ 0x5, 0x0a, 0x0, 0x0, 0x20af0000, 0,  0x00000000 },
79562306a36Sopenharmony_ci	{ 0x5, 0x0b, 0x0, 0x0, 0x0d3e0000, 0,  0x00000000 },
79662306a36Sopenharmony_ci	{ 0x5, 0x0c, 0x0, 0x0, 0x0d3d0000, 0,  0x00000000 },
79762306a36Sopenharmony_ci	{ 0x5, 0x0d, 0x0, 0x0, 0x0d1e0000, 0,  0x00000000 },
79862306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x0, 0x0, 0x0d150000, 0,  0x00000000 },
79962306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x1, 0x0, 0x0d160000, 1,  0x00010000 },
80062306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x2, 0x0, 0x0d170000, 2,  0x00020000 },
80162306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x3, 0x0, 0x0d180000, 3,  0x00030000 },
80262306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x4, 0x0, 0x0d190000, 4,  0x00040000 },
80362306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x5, 0x0, 0x0d1a0000, 5,  0x00050000 },
80462306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x6, 0x0, 0x0d1b0000, 6,  0x00060000 },
80562306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x7, 0x0, 0x0d1c0000, 7,  0x00070000 },
80662306a36Sopenharmony_ci	{ 0x5, 0x0e, 0x8, 0x0, 0x0d1d0000, 8,  0x00080000 },
80762306a36Sopenharmony_ci	{ 0x5, 0x0f, 0x0, 0x0, 0x0d660000, 0,  0x00000000 },
80862306a36Sopenharmony_ci	{ 0x5, 0x10, 0x0, 0x0, 0x0d1f0000, 0,  0x00000000 },
80962306a36Sopenharmony_ci	{ 0x5, 0x10, 0x1, 0x0, 0x0d200000, 1,  0x00010000 },
81062306a36Sopenharmony_ci	{ 0x5, 0x10, 0x2, 0x0, 0x0d210000, 2,  0x00020000 },
81162306a36Sopenharmony_ci	{ 0x5, 0x10, 0x3, 0x0, 0x0d220000, 3,  0x00030000 },
81262306a36Sopenharmony_ci	{ 0x5, 0x11, 0x0, 0x0, 0x0d240000, 0,  0x00000000 },
81362306a36Sopenharmony_ci	{ 0x5, 0x12, 0x0, 0x0, 0x0d250000, 0,  0x00000000 },
81462306a36Sopenharmony_ci	{ 0x5, 0x13, 0x0, 0x0, 0x0d260000, 0,  0x00000000 },
81562306a36Sopenharmony_ci	{ 0x5, 0x14, 0x0, 0x0, 0x0d270000, 0,  0x00000000 },
81662306a36Sopenharmony_ci	{ 0x5, 0x15, 0x0, 0x0, 0x0d2b0000, 0,  0x00000000 },
81762306a36Sopenharmony_ci	{ 0x5, 0x16, 0x0, 0x0, 0x0d280000, 0,  0x00000000 },
81862306a36Sopenharmony_ci	{ 0x5, 0x17, 0x0, 0x0, 0x0d0f0000, 0,  0x00000000 },
81962306a36Sopenharmony_ci	{ 0x5, 0x17, 0x1, 0x0, 0x0d100000, 1,  0x00010000 },
82062306a36Sopenharmony_ci	{ 0x5, 0x17, 0x2, 0x0, 0x0d110000, 2,  0x00020000 },
82162306a36Sopenharmony_ci	{ 0x5, 0x17, 0x3, 0x0, 0x0d120000, 3,  0x00030000 },
82262306a36Sopenharmony_ci	{ 0x5, 0x17, 0x4, 0x0, 0x0d130000, 4,  0x00040000 },
82362306a36Sopenharmony_ci	{ 0x5, 0x17, 0x5, 0x0, 0x0d140000, 5,  0x00050000 },
82462306a36Sopenharmony_ci	{ 0x5, 0x18, 0x0, 0x0, 0x0d020000, 0,  0x00000000 },
82562306a36Sopenharmony_ci	{ 0x5, 0x19, 0x0, 0x0, 0x0d030000, 0,  0x00000000 },
82662306a36Sopenharmony_ci	{ 0x5, 0x1f, 0x0, 0x0, 0x0d600000, 0,  0x00000000 },
82762306a36Sopenharmony_ci	{ 0x5, 0x1f, 0x1, 0x0, 0x00000000, 0,  0x00000000 }
82862306a36Sopenharmony_ci};
82962306a36Sopenharmony_ci
83062306a36Sopenharmony_ci/*
83162306a36Sopenharmony_ci * AON NOC aperture lookup table as per file "AON_NOC_Structure.info".
83262306a36Sopenharmony_ci */
83362306a36Sopenharmony_cistatic const char * const tegra194_aonnoc_routeid_initflow[] = {
83462306a36Sopenharmony_ci	[0x0] = "cbb_i/I/0",
83562306a36Sopenharmony_ci	[0x1] = "cpu_p_i/I/0",
83662306a36Sopenharmony_ci	[0x2] = "dma_m_i/I/0",
83762306a36Sopenharmony_ci	[0x3] = "dma_p_i/I/0"
83862306a36Sopenharmony_ci};
83962306a36Sopenharmony_ci
84062306a36Sopenharmony_cistatic const char * const tegra194_aonnoc_routeid_targflow[] = {
84162306a36Sopenharmony_ci	[0x00] = "multiport1_t/T/aon_misc",
84262306a36Sopenharmony_ci	[0x01] = "multiport1_t/T/avic0",
84362306a36Sopenharmony_ci	[0x02] = "multiport1_t/T/avic1",
84462306a36Sopenharmony_ci	[0x03] = "multiport1_t/T/can1",
84562306a36Sopenharmony_ci	[0x04] = "multiport1_t/T/can2",
84662306a36Sopenharmony_ci	[0x05] = "multiport1_t/T/dma",
84762306a36Sopenharmony_ci	[0x06] = "multiport1_t/T/dmic",
84862306a36Sopenharmony_ci	[0x07] = "multiport1_t/T/err_collator",
84962306a36Sopenharmony_ci	[0x08] = "multiport1_t/T/fpga_misc",
85062306a36Sopenharmony_ci	[0x09] = "multiport1_t/T/gte",
85162306a36Sopenharmony_ci	[0x0a] = "multiport1_t/T/hsp",
85262306a36Sopenharmony_ci	[0x0b] = "multiport1_t/T/i2c2",
85362306a36Sopenharmony_ci	[0x0c] = "multiport1_t/T/i2c8",
85462306a36Sopenharmony_ci	[0x0d] = "multiport1_t/T/pwm",
85562306a36Sopenharmony_ci	[0x0e] = "multiport1_t/T/spi2",
85662306a36Sopenharmony_ci	[0x0f] = "multiport1_t/T/tke",
85762306a36Sopenharmony_ci	[0x10] = "multiport1_t/T/uartg",
85862306a36Sopenharmony_ci	[0x11] = "RESERVED",
85962306a36Sopenharmony_ci	[0x12] = "RESERVED",
86062306a36Sopenharmony_ci	[0x13] = "RESERVED",
86162306a36Sopenharmony_ci	[0x14] = "RESERVED",
86262306a36Sopenharmony_ci	[0x15] = "RESERVED",
86362306a36Sopenharmony_ci	[0x16] = "RESERVED",
86462306a36Sopenharmony_ci	[0x17] = "RESERVED",
86562306a36Sopenharmony_ci	[0x18] = "RESERVED",
86662306a36Sopenharmony_ci	[0x19] = "RESERVED",
86762306a36Sopenharmony_ci	[0x1a] = "RESERVED",
86862306a36Sopenharmony_ci	[0x1b] = "RESERVED",
86962306a36Sopenharmony_ci	[0x1c] = "RESERVED",
87062306a36Sopenharmony_ci	[0x1d] = "RESERVED",
87162306a36Sopenharmony_ci	[0x1e] = "RESERVED",
87262306a36Sopenharmony_ci	[0x1f] = "RESERVED",
87362306a36Sopenharmony_ci	[0x20] = "multiport0_t/T/aovc",
87462306a36Sopenharmony_ci	[0x21] = "multiport0_t/T/atcm",
87562306a36Sopenharmony_ci	[0x22] = "multiport0_t/T/cast",
87662306a36Sopenharmony_ci	[0x23] = "multiport0_t/T/dast",
87762306a36Sopenharmony_ci	[0x24] = "multiport0_t/T/err_collator_car",
87862306a36Sopenharmony_ci	[0x25] = "multiport0_t/T/gpio",
87962306a36Sopenharmony_ci	[0x26] = "multiport0_t/T/i2c10",
88062306a36Sopenharmony_ci	[0x27] = "multiport0_t/T/mss",
88162306a36Sopenharmony_ci	[0x28] = "multiport0_t/T/padctl_a12",
88262306a36Sopenharmony_ci	[0x29] = "multiport0_t/T/padctl_a14",
88362306a36Sopenharmony_ci	[0x2a] = "multiport0_t/T/padctl_a15",
88462306a36Sopenharmony_ci	[0x2b] = "multiport0_t/T/rtc",
88562306a36Sopenharmony_ci	[0x2c] = "multiport0_t/T/tsc",
88662306a36Sopenharmony_ci	[0x2d] = "RESERVED",
88762306a36Sopenharmony_ci	[0x2e] = "RESERVED",
88862306a36Sopenharmony_ci	[0x2f] = "RESERVED",
88962306a36Sopenharmony_ci	[0x30] = "multiport2_t/T/aon_vref_ro",
89062306a36Sopenharmony_ci	[0x31] = "multiport2_t/T/aopm",
89162306a36Sopenharmony_ci	[0x32] = "multiport2_t/T/car",
89262306a36Sopenharmony_ci	[0x33] = "multiport2_t/T/pmc",
89362306a36Sopenharmony_ci	[0x34] = "ast1_t/T/0",
89462306a36Sopenharmony_ci	[0x35] = "cbb_t/T/0",
89562306a36Sopenharmony_ci	[0x36] = "cpu_t/T/0",
89662306a36Sopenharmony_ci	[0x37] = "firewall_t/T/0",
89762306a36Sopenharmony_ci	[0x38] = "svc_t/T/0",
89862306a36Sopenharmony_ci	[0x39] = "uartc/T/uartc",
89962306a36Sopenharmony_ci	[0x3a] = "RESERVED",
90062306a36Sopenharmony_ci	[0x3b] = "RESERVED",
90162306a36Sopenharmony_ci	[0x3c] = "RESERVED",
90262306a36Sopenharmony_ci	[0x3d] = "RESERVED",
90362306a36Sopenharmony_ci	[0x3e] = "RESERVED",
90462306a36Sopenharmony_ci	[0x3f] = "RESERVED"
90562306a36Sopenharmony_ci};
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_ci/*
90862306a36Sopenharmony_ci * Fields of AON NOC lookup table:
90962306a36Sopenharmony_ci * Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
91062306a36Sopenharmony_ci *                                              Targ mapping, Targ localAddress
91162306a36Sopenharmony_ci * ----------------------------------------------------------------------------
91262306a36Sopenharmony_ci */
91362306a36Sopenharmony_cistatic const struct tegra194_cbb_aperture tegra194_aonnoc_aperture_lookup[] = {
91462306a36Sopenharmony_ci	{ 0x0, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
91562306a36Sopenharmony_ci	{ 0x0, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
91662306a36Sopenharmony_ci	{ 0x0, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
91762306a36Sopenharmony_ci	{ 0x0, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
91862306a36Sopenharmony_ci	{ 0x0, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
91962306a36Sopenharmony_ci	{ 0x0, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
92062306a36Sopenharmony_ci	{ 0x0, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
92162306a36Sopenharmony_ci	{ 0x0, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
92262306a36Sopenharmony_ci	{ 0x0, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
92362306a36Sopenharmony_ci	{ 0x0, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
92462306a36Sopenharmony_ci	{ 0x0, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
92562306a36Sopenharmony_ci	{ 0x0, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
92662306a36Sopenharmony_ci	{ 0x0, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
92762306a36Sopenharmony_ci	{ 0x0, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
92862306a36Sopenharmony_ci	{ 0x0, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
92962306a36Sopenharmony_ci	{ 0x0, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
93062306a36Sopenharmony_ci	{ 0x0, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
93162306a36Sopenharmony_ci	{ 0x0, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
93262306a36Sopenharmony_ci	{ 0x0, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
93362306a36Sopenharmony_ci	{ 0x0, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
93462306a36Sopenharmony_ci	{ 0x0, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
93562306a36Sopenharmony_ci	{ 0x0, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
93662306a36Sopenharmony_ci	{ 0x0, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
93762306a36Sopenharmony_ci	{ 0x0, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
93862306a36Sopenharmony_ci	{ 0x0, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
93962306a36Sopenharmony_ci	{ 0x0, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
94062306a36Sopenharmony_ci	{ 0x0, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
94162306a36Sopenharmony_ci	{ 0x0, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
94262306a36Sopenharmony_ci	{ 0x0, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
94362306a36Sopenharmony_ci	{ 0x0, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
94462306a36Sopenharmony_ci	{ 0x0, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
94562306a36Sopenharmony_ci	{ 0x0, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
94662306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
94762306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
94862306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
94962306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
95062306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
95162306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
95262306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
95362306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
95462306a36Sopenharmony_ci	{ 0x0, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
95562306a36Sopenharmony_ci	{ 0x0, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
95662306a36Sopenharmony_ci	{ 0x0, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
95762306a36Sopenharmony_ci	{ 0x0, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
95862306a36Sopenharmony_ci	{ 0x0, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
95962306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
96062306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
96162306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
96262306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
96362306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
96462306a36Sopenharmony_ci	{ 0x0, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
96562306a36Sopenharmony_ci	{ 0x0, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
96662306a36Sopenharmony_ci	{ 0x0, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
96762306a36Sopenharmony_ci	{ 0x0, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
96862306a36Sopenharmony_ci	{ 0x0, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
96962306a36Sopenharmony_ci	{ 0x0, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
97062306a36Sopenharmony_ci	{ 0x0, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
97162306a36Sopenharmony_ci	{ 0x0, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
97262306a36Sopenharmony_ci	{ 0x0, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
97362306a36Sopenharmony_ci	{ 0x0, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
97462306a36Sopenharmony_ci	{ 0x0, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
97562306a36Sopenharmony_ci	{ 0x0, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
97662306a36Sopenharmony_ci	{ 0x0, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
97762306a36Sopenharmony_ci	{ 0x0, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
97862306a36Sopenharmony_ci	{ 0x0, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
97962306a36Sopenharmony_ci	{ 0x0, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
98062306a36Sopenharmony_ci	{ 0x0, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
98162306a36Sopenharmony_ci	{ 0x0, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 },
98262306a36Sopenharmony_ci	{ 0x1, 0x35, 0x00, 0, 0x00000000, 0,  0x00000000 },
98362306a36Sopenharmony_ci	{ 0x1, 0x35, 0x01, 0, 0x00100000, 1,  0x00100000 },
98462306a36Sopenharmony_ci	{ 0x1, 0x35, 0x02, 0, 0x05a00000, 11, 0x05a00000 },
98562306a36Sopenharmony_ci	{ 0x1, 0x35, 0x03, 0, 0x05b00000, 32, 0x05b00000 },
98662306a36Sopenharmony_ci	{ 0x1, 0x35, 0x04, 0, 0x05c00000, 33, 0x05c00000 },
98762306a36Sopenharmony_ci	{ 0x1, 0x35, 0x05, 0, 0x05d00000, 12, 0x05d00000 },
98862306a36Sopenharmony_ci	{ 0x1, 0x35, 0x06, 0, 0x20000000, 19, 0x20000000 },
98962306a36Sopenharmony_ci	{ 0x1, 0x35, 0x07, 0, 0x20100000, 20, 0x20100000 },
99062306a36Sopenharmony_ci	{ 0x1, 0x35, 0x08, 0, 0x20a00000, 24, 0x20a00000 },
99162306a36Sopenharmony_ci	{ 0x1, 0x35, 0x09, 0, 0x20d00000, 25, 0x20d00000 },
99262306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0a, 0, 0x00200000, 2,  0x00200000 },
99362306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0b, 0, 0x05800000, 10, 0x05800000 },
99462306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0c, 0, 0x05e00000, 13, 0x05e00000 },
99562306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0d, 0, 0x20200000, 21, 0x20200000 },
99662306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0e, 0, 0x20800000, 23, 0x20800000 },
99762306a36Sopenharmony_ci	{ 0x1, 0x35, 0x0f, 0, 0x20e00000, 26, 0x20e00000 },
99862306a36Sopenharmony_ci	{ 0x1, 0x35, 0x10, 0, 0x00400000, 3,  0x00400000 },
99962306a36Sopenharmony_ci	{ 0x1, 0x35, 0x11, 0, 0x20400000, 22, 0x20400000 },
100062306a36Sopenharmony_ci	{ 0x1, 0x35, 0x12, 0, 0x00800000, 4,  0x00800000 },
100162306a36Sopenharmony_ci	{ 0x1, 0x35, 0x13, 0, 0x05000000, 9,  0x05000000 },
100262306a36Sopenharmony_ci	{ 0x1, 0x35, 0x14, 0, 0x0c800000, 34, 0x0c800000 },
100362306a36Sopenharmony_ci	{ 0x1, 0x35, 0x15, 0, 0x01000000, 5,  0x01000000 },
100462306a36Sopenharmony_ci	{ 0x1, 0x35, 0x16, 0, 0x03000000, 7,  0x03000000 },
100562306a36Sopenharmony_ci	{ 0x1, 0x35, 0x17, 0, 0x04000000, 8,  0x04000000 },
100662306a36Sopenharmony_ci	{ 0x1, 0x35, 0x18, 0, 0x0d000000, 16, 0x0d000000 },
100762306a36Sopenharmony_ci	{ 0x1, 0x35, 0x19, 0, 0x21000000, 27, 0x21000000 },
100862306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1a, 0, 0x02000000, 6,  0x02000000 },
100962306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1b, 0, 0x06000000, 14, 0x06000000 },
101062306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1c, 0, 0x0e000000, 17, 0x0e000000 },
101162306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1d, 0, 0x22000000, 28, 0x22000000 },
101262306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1e, 0, 0x08000000, 15, 0x08000000 },
101362306a36Sopenharmony_ci	{ 0x1, 0x35, 0x1f, 0, 0x24000000, 29, 0x24000000 },
101462306a36Sopenharmony_ci	{ 0x1, 0x35, 0x20, 0, 0x28000000, 30, 0x28000000 },
101562306a36Sopenharmony_ci	{ 0x1, 0x35, 0x21, 0, 0x10000000, 18, 0x10000000 },
101662306a36Sopenharmony_ci	{ 0x1, 0x35, 0x22, 0, 0x30000000, 31, 0x30000000 },
101762306a36Sopenharmony_ci	{ 0x1, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
101862306a36Sopenharmony_ci	{ 0x1, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
101962306a36Sopenharmony_ci	{ 0x1, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
102062306a36Sopenharmony_ci	{ 0x1, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
102162306a36Sopenharmony_ci	{ 0x1, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
102262306a36Sopenharmony_ci	{ 0x1, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
102362306a36Sopenharmony_ci	{ 0x1, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
102462306a36Sopenharmony_ci	{ 0x1, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
102562306a36Sopenharmony_ci	{ 0x1, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
102662306a36Sopenharmony_ci	{ 0x1, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
102762306a36Sopenharmony_ci	{ 0x1, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
102862306a36Sopenharmony_ci	{ 0x1, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
102962306a36Sopenharmony_ci	{ 0x1, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
103062306a36Sopenharmony_ci	{ 0x1, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
103162306a36Sopenharmony_ci	{ 0x1, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
103262306a36Sopenharmony_ci	{ 0x1, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
103362306a36Sopenharmony_ci	{ 0x1, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
103462306a36Sopenharmony_ci	{ 0x1, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
103562306a36Sopenharmony_ci	{ 0x1, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
103662306a36Sopenharmony_ci	{ 0x1, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
103762306a36Sopenharmony_ci	{ 0x1, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
103862306a36Sopenharmony_ci	{ 0x1, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
103962306a36Sopenharmony_ci	{ 0x1, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
104062306a36Sopenharmony_ci	{ 0x1, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
104162306a36Sopenharmony_ci	{ 0x1, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
104262306a36Sopenharmony_ci	{ 0x1, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
104362306a36Sopenharmony_ci	{ 0x1, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
104462306a36Sopenharmony_ci	{ 0x1, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
104562306a36Sopenharmony_ci	{ 0x1, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
104662306a36Sopenharmony_ci	{ 0x1, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
104762306a36Sopenharmony_ci	{ 0x1, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
104862306a36Sopenharmony_ci	{ 0x1, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
104962306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
105062306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
105162306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
105262306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
105362306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
105462306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
105562306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
105662306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
105762306a36Sopenharmony_ci	{ 0x1, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
105862306a36Sopenharmony_ci	{ 0x1, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
105962306a36Sopenharmony_ci	{ 0x1, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
106062306a36Sopenharmony_ci	{ 0x1, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
106162306a36Sopenharmony_ci	{ 0x1, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
106262306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
106362306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
106462306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
106562306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
106662306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
106762306a36Sopenharmony_ci	{ 0x1, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
106862306a36Sopenharmony_ci	{ 0x1, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
106962306a36Sopenharmony_ci	{ 0x1, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
107062306a36Sopenharmony_ci	{ 0x1, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
107162306a36Sopenharmony_ci	{ 0x1, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
107262306a36Sopenharmony_ci	{ 0x1, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
107362306a36Sopenharmony_ci	{ 0x1, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
107462306a36Sopenharmony_ci	{ 0x1, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
107562306a36Sopenharmony_ci	{ 0x1, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
107662306a36Sopenharmony_ci	{ 0x1, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
107762306a36Sopenharmony_ci	{ 0x1, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
107862306a36Sopenharmony_ci	{ 0x1, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
107962306a36Sopenharmony_ci	{ 0x1, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
108062306a36Sopenharmony_ci	{ 0x1, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
108162306a36Sopenharmony_ci	{ 0x1, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
108262306a36Sopenharmony_ci	{ 0x1, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
108362306a36Sopenharmony_ci	{ 0x1, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
108462306a36Sopenharmony_ci	{ 0x1, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 },
108562306a36Sopenharmony_ci	{ 0x2, 0x34, 0x00, 0, 0x40000000, 0,  0x40000000 },
108662306a36Sopenharmony_ci	{ 0x2, 0x34, 0x01, 0, 0x80000000, 1,  0x80000000 },
108762306a36Sopenharmony_ci	{ 0x2, 0x36, 0x00, 0, 0x0c400000, 0,  0x0c400000 },
108862306a36Sopenharmony_ci	{ 0x2, 0x36, 0x01, 0, 0x00000000, 0,  0x00000000 },
108962306a36Sopenharmony_ci	{ 0x3, 0x35, 0x00, 0, 0x00000000, 0,  0x00000000 },
109062306a36Sopenharmony_ci	{ 0x3, 0x35, 0x01, 0, 0x00100000, 1,  0x00100000 },
109162306a36Sopenharmony_ci	{ 0x3, 0x35, 0x02, 0, 0x05a00000, 11, 0x05a00000 },
109262306a36Sopenharmony_ci	{ 0x3, 0x35, 0x03, 0, 0x05b00000, 32, 0x05b00000 },
109362306a36Sopenharmony_ci	{ 0x3, 0x35, 0x04, 0, 0x05c00000, 33, 0x05c00000 },
109462306a36Sopenharmony_ci	{ 0x3, 0x35, 0x05, 0, 0x05d00000, 12, 0x05d00000 },
109562306a36Sopenharmony_ci	{ 0x3, 0x35, 0x06, 0, 0x20000000, 19, 0x20000000 },
109662306a36Sopenharmony_ci	{ 0x3, 0x35, 0x07, 0, 0x20100000, 20, 0x20100000 },
109762306a36Sopenharmony_ci	{ 0x3, 0x35, 0x08, 0, 0x20a00000, 24, 0x20a00000 },
109862306a36Sopenharmony_ci	{ 0x3, 0x35, 0x09, 0, 0x20d00000, 25, 0x20d00000 },
109962306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0a, 0, 0x00200000, 2,  0x00200000 },
110062306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0b, 0, 0x05800000, 10, 0x05800000 },
110162306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0c, 0, 0x05e00000, 13, 0x05e00000 },
110262306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0d, 0, 0x20200000, 21, 0x20200000 },
110362306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0e, 0, 0x20800000, 23, 0x20800000 },
110462306a36Sopenharmony_ci	{ 0x3, 0x35, 0x0f, 0, 0x20e00000, 26, 0x20e00000 },
110562306a36Sopenharmony_ci	{ 0x3, 0x35, 0x10, 0, 0x00400000, 3,  0x00400000 },
110662306a36Sopenharmony_ci	{ 0x3, 0x35, 0x11, 0, 0x20400000, 22, 0x20400000 },
110762306a36Sopenharmony_ci	{ 0x3, 0x35, 0x12, 0, 0x00800000, 4,  0x00800000 },
110862306a36Sopenharmony_ci	{ 0x3, 0x35, 0x13, 0, 0x50000000, 9,  0x05000000 },
110962306a36Sopenharmony_ci	{ 0x3, 0x35, 0x14, 0, 0xc0800000, 34, 0x0c800000 },
111062306a36Sopenharmony_ci	{ 0x3, 0x35, 0x15, 0, 0x10000000, 5,  0x01000000 },
111162306a36Sopenharmony_ci	{ 0x3, 0x35, 0x16, 0, 0x30000000, 7,  0x03000000 },
111262306a36Sopenharmony_ci	{ 0x3, 0x35, 0x17, 0, 0x04000000, 8,  0x04000000 },
111362306a36Sopenharmony_ci	{ 0x3, 0x35, 0x18, 0, 0x0d000000, 16, 0x0d000000 },
111462306a36Sopenharmony_ci	{ 0x3, 0x35, 0x19, 0, 0x21000000, 27, 0x21000000 },
111562306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1a, 0, 0x02000000, 6,  0x02000000 },
111662306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1b, 0, 0x06000000, 14, 0x06000000 },
111762306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1c, 0, 0x0e000000, 17, 0x0e000000 },
111862306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1d, 0, 0x22000000, 28, 0x22000000 },
111962306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1e, 0, 0x08000000, 15, 0x08000000 },
112062306a36Sopenharmony_ci	{ 0x3, 0x35, 0x1f, 0, 0x24000000, 29, 0x24000000 },
112162306a36Sopenharmony_ci	{ 0x3, 0x35, 0x20, 0, 0x28000000, 30, 0x28000000 },
112262306a36Sopenharmony_ci	{ 0x3, 0x35, 0x21, 0, 0x10000000, 18, 0x10000000 },
112362306a36Sopenharmony_ci	{ 0x3, 0x35, 0x22, 0, 0x30000000, 31, 0x30000000 },
112462306a36Sopenharmony_ci	{ 0x3, 0x37, 0x00, 0, 0x0c640000, 0,  0x00000000 },
112562306a36Sopenharmony_ci	{ 0x3, 0x20, 0x00, 0, 0x0c3b0000, 0,  0x00000000 },
112662306a36Sopenharmony_ci	{ 0x3, 0x21, 0x00, 0, 0x0c000000, 0,  0x00000000 },
112762306a36Sopenharmony_ci	{ 0x3, 0x22, 0x00, 0, 0x0c040000, 0,  0x00000000 },
112862306a36Sopenharmony_ci	{ 0x3, 0x23, 0x00, 0, 0x0c050000, 0,  0x00000000 },
112962306a36Sopenharmony_ci	{ 0x3, 0x24, 0x00, 0, 0x20cf0000, 0,  0x00000000 },
113062306a36Sopenharmony_ci	{ 0x3, 0x25, 0x00, 0, 0x0c2f0000, 0,  0x00000000 },
113162306a36Sopenharmony_ci	{ 0x3, 0x26, 0x00, 0, 0x0c230000, 0,  0x00000000 },
113262306a36Sopenharmony_ci	{ 0x3, 0x27, 0x00, 0, 0x0c350000, 0,  0x00000000 },
113362306a36Sopenharmony_ci	{ 0x3, 0x28, 0x00, 0, 0x0c301000, 0,  0x00000000 },
113462306a36Sopenharmony_ci	{ 0x3, 0x29, 0x00, 0, 0x0c302000, 0,  0x00000000 },
113562306a36Sopenharmony_ci	{ 0x3, 0x2a, 0x00, 0, 0x0c303000, 0,  0x00000000 },
113662306a36Sopenharmony_ci	{ 0x3, 0x2b, 0x00, 0, 0x0c2a0000, 0,  0x00000000 },
113762306a36Sopenharmony_ci	{ 0x3, 0x2c, 0x00, 0, 0x0c2b0000, 0,  0x00000000 },
113862306a36Sopenharmony_ci	{ 0x3, 0x2c, 0x01, 0, 0x0c2c0000, 1,  0x00010000 },
113962306a36Sopenharmony_ci	{ 0x3, 0x2c, 0x02, 0, 0x0c2d0000, 2,  0x00020000 },
114062306a36Sopenharmony_ci	{ 0x3, 0x2c, 0x03, 0, 0x0c2e0000, 3,  0x00030000 },
114162306a36Sopenharmony_ci	{ 0x3, 0x00, 0x00, 0, 0x0c660000, 0,  0x00000000 },
114262306a36Sopenharmony_ci	{ 0x3, 0x01, 0x00, 0, 0x0c020000, 0,  0x00000000 },
114362306a36Sopenharmony_ci	{ 0x3, 0x02, 0x00, 0, 0x0c030000, 0,  0x00000000 },
114462306a36Sopenharmony_ci	{ 0x3, 0x03, 0x00, 0, 0x0c310000, 0,  0x00000000 },
114562306a36Sopenharmony_ci	{ 0x3, 0x04, 0x00, 0, 0x0c320000, 0,  0x00000000 },
114662306a36Sopenharmony_ci	{ 0x3, 0x05, 0x00, 0, 0x0c0a0000, 2,  0x00040000 },
114762306a36Sopenharmony_ci	{ 0x3, 0x05, 0x01, 0, 0x0c0b0000, 3,  0x00050000 },
114862306a36Sopenharmony_ci	{ 0x3, 0x05, 0x02, 0, 0x0c0e0000, 5,  0x00080000 },
114962306a36Sopenharmony_ci	{ 0x3, 0x05, 0x03, 0, 0x0c060000, 0,  0x00000000 },
115062306a36Sopenharmony_ci	{ 0x3, 0x05, 0x04, 0, 0x0c080000, 1,  0x00020000 },
115162306a36Sopenharmony_ci	{ 0x3, 0x05, 0x05, 0, 0x0c0c0000, 4,  0x00060000 },
115262306a36Sopenharmony_ci	{ 0x3, 0x06, 0x00, 0, 0x0c330000, 0,  0x00000000 },
115362306a36Sopenharmony_ci	{ 0x3, 0x07, 0x00, 0, 0x0c650000, 0,  0x00000000 },
115462306a36Sopenharmony_ci	{ 0x3, 0x08, 0x00, 0, 0x0c3e0000, 0,  0x00000000 },
115562306a36Sopenharmony_ci	{ 0x3, 0x09, 0x00, 0, 0x0c1e0000, 0,  0x00000000 },
115662306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x00, 0, 0x0c150000, 0,  0x00000000 },
115762306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x01, 0, 0x0c160000, 1,  0x00010000 },
115862306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x02, 0, 0x0c170000, 2,  0x00020000 },
115962306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x03, 0, 0x0c180000, 3,  0x00030000 },
116062306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x04, 0, 0x0c190000, 4,  0x00040000 },
116162306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x05, 0, 0x0c1a0000, 5,  0x00050000 },
116262306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x06, 0, 0x0c1b0000, 6,  0x00060000 },
116362306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x07, 0, 0x0c1c0000, 7,  0x00070000 },
116462306a36Sopenharmony_ci	{ 0x3, 0x0a, 0x08, 0, 0x0c1d0000, 8,  0x00080000 },
116562306a36Sopenharmony_ci	{ 0x3, 0x0b, 0x00, 0, 0x0c240000, 0,  0x00000000 },
116662306a36Sopenharmony_ci	{ 0x3, 0x0c, 0x00, 0, 0x0c250000, 0,  0x00000000 },
116762306a36Sopenharmony_ci	{ 0x3, 0x0d, 0x00, 0, 0x0c340000, 0,  0x00000000 },
116862306a36Sopenharmony_ci	{ 0x3, 0x0e, 0x00, 0, 0x0c260000, 0,  0x00000000 },
116962306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x00, 0, 0x0c0f0000, 0,  0x00000000 },
117062306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x01, 0, 0x0c100000, 1,  0x00010000 },
117162306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x02, 0, 0x0c110000, 2,  0x00020000 },
117262306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x03, 0, 0x0c120000, 3,  0x00030000 },
117362306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x04, 0, 0x0c130000, 4,  0x00040000 },
117462306a36Sopenharmony_ci	{ 0x3, 0x0f, 0x05, 0, 0x0c140000, 5,  0x00050000 },
117562306a36Sopenharmony_ci	{ 0x3, 0x10, 0x00, 0, 0x0c290000, 0,  0x00000000 },
117662306a36Sopenharmony_ci	{ 0x3, 0x30, 0x00, 0, 0x20ce0000, 0,  0x00000000 },
117762306a36Sopenharmony_ci	{ 0x3, 0x31, 0x00, 0, 0x0c1f0000, 0,  0x00000000 },
117862306a36Sopenharmony_ci	{ 0x3, 0x31, 0x01, 0, 0x0c200000, 1,  0x00010000 },
117962306a36Sopenharmony_ci	{ 0x3, 0x31, 0x02, 0, 0x0c210000, 2,  0x00020000 },
118062306a36Sopenharmony_ci	{ 0x3, 0x31, 0x03, 0, 0x0c220000, 3,  0x00030000 },
118162306a36Sopenharmony_ci	{ 0x3, 0x32, 0x00, 0, 0x20cc0000, 3,  0x001c0000 },
118262306a36Sopenharmony_ci	{ 0x3, 0x32, 0x01, 0, 0x20c80000, 2,  0x00180000 },
118362306a36Sopenharmony_ci	{ 0x3, 0x32, 0x02, 0, 0x20c00000, 1,  0x00100000 },
118462306a36Sopenharmony_ci	{ 0x3, 0x32, 0x03, 0, 0x20b00000, 0,  0x00000000 },
118562306a36Sopenharmony_ci	{ 0x3, 0x33, 0x00, 0, 0x0c360000, 0,  0x00000000 },
118662306a36Sopenharmony_ci	{ 0x3, 0x33, 0x01, 0, 0x0c370000, 1,  0x00010000 },
118762306a36Sopenharmony_ci	{ 0x3, 0x33, 0x02, 0, 0x0c3a0000, 3,  0x00040000 },
118862306a36Sopenharmony_ci	{ 0x3, 0x33, 0x03, 0, 0x0c380000, 2,  0x00020000 },
118962306a36Sopenharmony_ci	{ 0x3, 0x38, 0x00, 0, 0x0c600000, 0,  0x00000000 },
119062306a36Sopenharmony_ci	{ 0x3, 0x38, 0x01, 0, 0x00000000, 0,  0x00000000 },
119162306a36Sopenharmony_ci	{ 0x3, 0x39, 0x00, 0, 0x0c280000, 0,  0x00000000 }
119262306a36Sopenharmony_ci};
119362306a36Sopenharmony_ci
119462306a36Sopenharmony_ci/*
119562306a36Sopenharmony_ci * SCE/RCE NOC aperture lookup table as per file "AON_NOC_Structure.info".
119662306a36Sopenharmony_ci */
119762306a36Sopenharmony_cistatic const char * const tegra194_scenoc_routeid_initflow[] = {
119862306a36Sopenharmony_ci	[0x0] = "cbb_i/I/0",
119962306a36Sopenharmony_ci	[0x1] = "cpu_m_i/I/0",
120062306a36Sopenharmony_ci	[0x2] = "cpu_p_i/I/0",
120162306a36Sopenharmony_ci	[0x3] = "dma_m_i/I/0",
120262306a36Sopenharmony_ci	[0x4] = "dma_p_i/I/0",
120362306a36Sopenharmony_ci	[0x5] = "RESERVED",
120462306a36Sopenharmony_ci	[0x6] = "RESERVED",
120562306a36Sopenharmony_ci	[0x7] = "RESERVED"
120662306a36Sopenharmony_ci};
120762306a36Sopenharmony_ci
120862306a36Sopenharmony_cistatic const char * const tegra194_scenoc_routeid_targflow[] = {
120962306a36Sopenharmony_ci	[0x00] = "multiport0_t/T/atcm_cfg",
121062306a36Sopenharmony_ci	[0x01] = "multiport0_t/T/car",
121162306a36Sopenharmony_ci	[0x02] = "multiport0_t/T/cast",
121262306a36Sopenharmony_ci	[0x03] = "multiport0_t/T/cfg",
121362306a36Sopenharmony_ci	[0x04] = "multiport0_t/T/dast",
121462306a36Sopenharmony_ci	[0x05] = "multiport0_t/T/dma",
121562306a36Sopenharmony_ci	[0x06] = "multiport0_t/T/err_collator",
121662306a36Sopenharmony_ci	[0x07] = "multiport0_t/T/err_collator_car",
121762306a36Sopenharmony_ci	[0x08] = "multiport0_t/T/fpga_misc",
121862306a36Sopenharmony_ci	[0x09] = "multiport0_t/T/fpga_uart",
121962306a36Sopenharmony_ci	[0x0a] = "multiport0_t/T/gte",
122062306a36Sopenharmony_ci	[0x0b] = "multiport0_t/T/hsp",
122162306a36Sopenharmony_ci	[0x0c] = "multiport0_t/T/misc",
122262306a36Sopenharmony_ci	[0x0d] = "multiport0_t/T/pm",
122362306a36Sopenharmony_ci	[0x0e] = "multiport0_t/T/tke",
122462306a36Sopenharmony_ci	[0x0f] = "RESERVED",
122562306a36Sopenharmony_ci	[0x10] = "multiport1_t/T/hsm",
122662306a36Sopenharmony_ci	[0x11] = "multiport1_t/T/vic0",
122762306a36Sopenharmony_ci	[0x12] = "multiport1_t/T/vic1",
122862306a36Sopenharmony_ci	[0x13] = "ast0_t/T/0",
122962306a36Sopenharmony_ci	[0x14] = "ast1_t/T/0",
123062306a36Sopenharmony_ci	[0x15] = "cbb_t/T/0",
123162306a36Sopenharmony_ci	[0x16] = "cpu_t/T/0",
123262306a36Sopenharmony_ci	[0x17] = "sce_noc_firewall/T/0",
123362306a36Sopenharmony_ci	[0x18] = "svc_t/T/0",
123462306a36Sopenharmony_ci	[0x19] = "RESERVED",
123562306a36Sopenharmony_ci	[0x1a] = "RESERVED",
123662306a36Sopenharmony_ci	[0x1b] = "RESERVED",
123762306a36Sopenharmony_ci	[0x1c] = "RESERVED",
123862306a36Sopenharmony_ci	[0x1d] = "RESERVED",
123962306a36Sopenharmony_ci	[0x1e] = "RESERVED",
124062306a36Sopenharmony_ci	[0x1f] = "RESERVED"
124162306a36Sopenharmony_ci};
124262306a36Sopenharmony_ci
124362306a36Sopenharmony_ci/*
124462306a36Sopenharmony_ci * Fields of SCE/RCE NOC lookup table:
124562306a36Sopenharmony_ci * Init flow, Targ flow, Targ subrange, Init mapping, Init localAddress,
124662306a36Sopenharmony_ci *                                              Targ mapping, Targ localAddress
124762306a36Sopenharmony_ci * ----------------------------------------------------------------------------
124862306a36Sopenharmony_ci */
124962306a36Sopenharmony_cistatic const struct tegra194_cbb_aperture tegra194_scenoc_apert_lookup[] = {
125062306a36Sopenharmony_ci	{ 0x0, 0x16, 0x0,  0, 0x0b400000, 0,  0x0b400000 },
125162306a36Sopenharmony_ci	{ 0x0, 0x16, 0x1,  0, 0x0bc00000, 1,  0x0bc00000 },
125262306a36Sopenharmony_ci	{ 0x0, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
125362306a36Sopenharmony_ci	{ 0x0, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
125462306a36Sopenharmony_ci	{ 0x0, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
125562306a36Sopenharmony_ci	{ 0x0, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
125662306a36Sopenharmony_ci	{ 0x0, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
125762306a36Sopenharmony_ci	{ 0x0, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
125862306a36Sopenharmony_ci	{ 0x0, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
125962306a36Sopenharmony_ci	{ 0x0, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
126062306a36Sopenharmony_ci	{ 0x0, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
126162306a36Sopenharmony_ci	{ 0x0, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
126262306a36Sopenharmony_ci	{ 0x0, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
126362306a36Sopenharmony_ci	{ 0x0, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
126462306a36Sopenharmony_ci	{ 0x0, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
126562306a36Sopenharmony_ci	{ 0x0, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
126662306a36Sopenharmony_ci	{ 0x0, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
126762306a36Sopenharmony_ci	{ 0x0, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
126862306a36Sopenharmony_ci	{ 0x0, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
126962306a36Sopenharmony_ci	{ 0x0, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
127062306a36Sopenharmony_ci	{ 0x0, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
127162306a36Sopenharmony_ci	{ 0x0, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
127262306a36Sopenharmony_ci	{ 0x0, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
127362306a36Sopenharmony_ci	{ 0x0, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
127462306a36Sopenharmony_ci	{ 0x0, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
127562306a36Sopenharmony_ci	{ 0x0, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
127662306a36Sopenharmony_ci	{ 0x0, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
127762306a36Sopenharmony_ci	{ 0x0, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
127862306a36Sopenharmony_ci	{ 0x0, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
127962306a36Sopenharmony_ci	{ 0x0, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
128062306a36Sopenharmony_ci	{ 0x0, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
128162306a36Sopenharmony_ci	{ 0x0, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
128262306a36Sopenharmony_ci	{ 0x0, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
128362306a36Sopenharmony_ci	{ 0x0, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
128462306a36Sopenharmony_ci	{ 0x0, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
128562306a36Sopenharmony_ci	{ 0x0, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
128662306a36Sopenharmony_ci	{ 0x0, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
128762306a36Sopenharmony_ci	{ 0x0, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
128862306a36Sopenharmony_ci	{ 0x0, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
128962306a36Sopenharmony_ci	{ 0x0, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
129062306a36Sopenharmony_ci	{ 0x0, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
129162306a36Sopenharmony_ci	{ 0x0, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
129262306a36Sopenharmony_ci	{ 0x0, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
129362306a36Sopenharmony_ci	{ 0x0, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
129462306a36Sopenharmony_ci	{ 0x0, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
129562306a36Sopenharmony_ci	{ 0x0, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
129662306a36Sopenharmony_ci	{ 0x0, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
129762306a36Sopenharmony_ci	{ 0x0, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
129862306a36Sopenharmony_ci	{ 0x0, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
129962306a36Sopenharmony_ci	{ 0x0, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
130062306a36Sopenharmony_ci	{ 0x0, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
130162306a36Sopenharmony_ci	{ 0x0, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
130262306a36Sopenharmony_ci	{ 0x0, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
130362306a36Sopenharmony_ci	{ 0x0, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
130462306a36Sopenharmony_ci	{ 0x0, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
130562306a36Sopenharmony_ci	{ 0x0, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
130662306a36Sopenharmony_ci	{ 0x0, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
130762306a36Sopenharmony_ci	{ 0x0, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
130862306a36Sopenharmony_ci	{ 0x0, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
130962306a36Sopenharmony_ci	{ 0x0, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
131062306a36Sopenharmony_ci	{ 0x0, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
131162306a36Sopenharmony_ci	{ 0x0, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
131262306a36Sopenharmony_ci	{ 0x0, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
131362306a36Sopenharmony_ci	{ 0x0, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
131462306a36Sopenharmony_ci	{ 0x0, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
131562306a36Sopenharmony_ci	{ 0x0, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
131662306a36Sopenharmony_ci	{ 0x0, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
131762306a36Sopenharmony_ci	{ 0x0, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
131862306a36Sopenharmony_ci	{ 0x0, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
131962306a36Sopenharmony_ci	{ 0x0, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
132062306a36Sopenharmony_ci	{ 0x0, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
132162306a36Sopenharmony_ci	{ 0x0, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
132262306a36Sopenharmony_ci	{ 0x0, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
132362306a36Sopenharmony_ci	{ 0x0, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
132462306a36Sopenharmony_ci	{ 0x0, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
132562306a36Sopenharmony_ci	{ 0x0, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
132662306a36Sopenharmony_ci	{ 0x0, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
132762306a36Sopenharmony_ci	{ 0x0, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
132862306a36Sopenharmony_ci	{ 0x0, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
132962306a36Sopenharmony_ci	{ 0x0, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
133062306a36Sopenharmony_ci	{ 0x0, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
133162306a36Sopenharmony_ci	{ 0x0, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
133262306a36Sopenharmony_ci	{ 0x0, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
133362306a36Sopenharmony_ci	{ 0x0, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
133462306a36Sopenharmony_ci	{ 0x0, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
133562306a36Sopenharmony_ci	{ 0x0, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
133662306a36Sopenharmony_ci	{ 0x0, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
133762306a36Sopenharmony_ci	{ 0x0, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
133862306a36Sopenharmony_ci	{ 0x0, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
133962306a36Sopenharmony_ci	{ 0x0, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
134062306a36Sopenharmony_ci	{ 0x0, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
134162306a36Sopenharmony_ci	{ 0x0, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
134262306a36Sopenharmony_ci	{ 0x0, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
134362306a36Sopenharmony_ci	{ 0x0, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
134462306a36Sopenharmony_ci	{ 0x0, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
134562306a36Sopenharmony_ci	{ 0x0, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
134662306a36Sopenharmony_ci	{ 0x0, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
134762306a36Sopenharmony_ci	{ 0x0, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 },
134862306a36Sopenharmony_ci	{ 0x1, 0x13, 0x0,  0, 0x40000000, 0,  0x40000000 },
134962306a36Sopenharmony_ci	{ 0x1, 0x13, 0x1,  1, 0x80000000, 1,  0x80000000 },
135062306a36Sopenharmony_ci	{ 0x1, 0x13, 0x2,  0, 0x00000000, 0,  0x00000000 },
135162306a36Sopenharmony_ci	{ 0x2, 0x15, 0x0,  0, 0x20c00000, 8,  0x20c00000 },
135262306a36Sopenharmony_ci	{ 0x2, 0x15, 0x1,  0, 0x21100000, 22, 0x21100000 },
135362306a36Sopenharmony_ci	{ 0x2, 0x15, 0x2,  0, 0x20e00000, 9,  0x20e00000 },
135462306a36Sopenharmony_ci	{ 0x2, 0x15, 0x3,  0, 0x21200000, 23, 0x21200000 },
135562306a36Sopenharmony_ci	{ 0x2, 0x15, 0x4,  0, 0x20800000, 7,  0x20800000 },
135662306a36Sopenharmony_ci	{ 0x2, 0x15, 0x5,  0, 0x21400000, 24, 0x21400000 },
135762306a36Sopenharmony_ci	{ 0x2, 0x15, 0x6,  0, 0x0b000000, 18, 0x0b000000 },
135862306a36Sopenharmony_ci	{ 0x2, 0x15, 0x7,  0, 0x0b800000, 3,  0x0b800000 },
135962306a36Sopenharmony_ci	{ 0x2, 0x15, 0x8,  0, 0x20000000, 6,  0x20000000 },
136062306a36Sopenharmony_ci	{ 0x2, 0x15, 0x9,  0, 0x21800000, 25, 0x21800000 },
136162306a36Sopenharmony_ci	{ 0x2, 0x15, 0xa,  0, 0x0a000000, 2,  0x0a000000 },
136262306a36Sopenharmony_ci	{ 0x2, 0x15, 0xb,  0, 0x0a000000, 17, 0x0a000000 },
136362306a36Sopenharmony_ci	{ 0x2, 0x15, 0xc,  0, 0x20000000, 21, 0x20000000 },
136462306a36Sopenharmony_ci	{ 0x2, 0x15, 0xd,  0, 0x21000000, 10, 0x21000000 },
136562306a36Sopenharmony_ci	{ 0x2, 0x15, 0xe,  0, 0x08000000, 1,  0x08000000 },
136662306a36Sopenharmony_ci	{ 0x2, 0x15, 0xf,  0, 0x08000000, 16, 0x08000000 },
136762306a36Sopenharmony_ci	{ 0x2, 0x15, 0x10, 0, 0x22000000, 11, 0x22000000 },
136862306a36Sopenharmony_ci	{ 0x2, 0x15, 0x11, 0, 0x22000000, 26, 0x22000000 },
136962306a36Sopenharmony_ci	{ 0x2, 0x15, 0x12, 0, 0x0c000000, 4,  0x0c000000 },
137062306a36Sopenharmony_ci	{ 0x2, 0x15, 0x13, 0, 0x0c000000, 19, 0x0c000000 },
137162306a36Sopenharmony_ci	{ 0x2, 0x15, 0x14, 0, 0x24000000, 12, 0x24000000 },
137262306a36Sopenharmony_ci	{ 0x2, 0x15, 0x15, 0, 0x24000000, 27, 0x24000000 },
137362306a36Sopenharmony_ci	{ 0x2, 0x15, 0x16, 0, 0x00000000, 0,  0x00000000 },
137462306a36Sopenharmony_ci	{ 0x2, 0x15, 0x17, 0, 0x00000000, 15, 0x00000000 },
137562306a36Sopenharmony_ci	{ 0x2, 0x15, 0x18, 0, 0x28000000, 13, 0x28000000 },
137662306a36Sopenharmony_ci	{ 0x2, 0x15, 0x19, 0, 0x28000000, 28, 0x28000000 },
137762306a36Sopenharmony_ci	{ 0x2, 0x15, 0x1a, 0, 0x10000000, 5,  0x10000000 },
137862306a36Sopenharmony_ci	{ 0x2, 0x15, 0x1b, 0, 0x10000000, 20, 0x10000000 },
137962306a36Sopenharmony_ci	{ 0x2, 0x15, 0x1c, 0, 0x30000000, 14, 0x30000000 },
138062306a36Sopenharmony_ci	{ 0x2, 0x15, 0x1d, 0, 0x30000000, 29, 0x30000000 },
138162306a36Sopenharmony_ci	{ 0x2, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
138262306a36Sopenharmony_ci	{ 0x2, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
138362306a36Sopenharmony_ci	{ 0x2, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
138462306a36Sopenharmony_ci	{ 0x2, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
138562306a36Sopenharmony_ci	{ 0x2, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
138662306a36Sopenharmony_ci	{ 0x2, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
138762306a36Sopenharmony_ci	{ 0x2, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
138862306a36Sopenharmony_ci	{ 0x2, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
138962306a36Sopenharmony_ci	{ 0x2, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
139062306a36Sopenharmony_ci	{ 0x2, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
139162306a36Sopenharmony_ci	{ 0x2, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
139262306a36Sopenharmony_ci	{ 0x2, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
139362306a36Sopenharmony_ci	{ 0x2, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
139462306a36Sopenharmony_ci	{ 0x2, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
139562306a36Sopenharmony_ci	{ 0x2, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
139662306a36Sopenharmony_ci	{ 0x2, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
139762306a36Sopenharmony_ci	{ 0x2, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
139862306a36Sopenharmony_ci	{ 0x2, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
139962306a36Sopenharmony_ci	{ 0x2, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
140062306a36Sopenharmony_ci	{ 0x2, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
140162306a36Sopenharmony_ci	{ 0x2, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
140262306a36Sopenharmony_ci	{ 0x2, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
140362306a36Sopenharmony_ci	{ 0x2, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
140462306a36Sopenharmony_ci	{ 0x2, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
140562306a36Sopenharmony_ci	{ 0x2, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
140662306a36Sopenharmony_ci	{ 0x2, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
140762306a36Sopenharmony_ci	{ 0x2, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
140862306a36Sopenharmony_ci	{ 0x2, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
140962306a36Sopenharmony_ci	{ 0x2, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
141062306a36Sopenharmony_ci	{ 0x2, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
141162306a36Sopenharmony_ci	{ 0x2, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
141262306a36Sopenharmony_ci	{ 0x2, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
141362306a36Sopenharmony_ci	{ 0x2, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
141462306a36Sopenharmony_ci	{ 0x2, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
141562306a36Sopenharmony_ci	{ 0x2, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
141662306a36Sopenharmony_ci	{ 0x2, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
141762306a36Sopenharmony_ci	{ 0x2, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
141862306a36Sopenharmony_ci	{ 0x2, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
141962306a36Sopenharmony_ci	{ 0x2, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
142062306a36Sopenharmony_ci	{ 0x2, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
142162306a36Sopenharmony_ci	{ 0x2, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
142262306a36Sopenharmony_ci	{ 0x2, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
142362306a36Sopenharmony_ci	{ 0x2, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
142462306a36Sopenharmony_ci	{ 0x2, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
142562306a36Sopenharmony_ci	{ 0x2, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
142662306a36Sopenharmony_ci	{ 0x2, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
142762306a36Sopenharmony_ci	{ 0x2, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
142862306a36Sopenharmony_ci	{ 0x2, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
142962306a36Sopenharmony_ci	{ 0x2, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
143062306a36Sopenharmony_ci	{ 0x2, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
143162306a36Sopenharmony_ci	{ 0x2, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
143262306a36Sopenharmony_ci	{ 0x2, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
143362306a36Sopenharmony_ci	{ 0x2, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
143462306a36Sopenharmony_ci	{ 0x2, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
143562306a36Sopenharmony_ci	{ 0x2, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
143662306a36Sopenharmony_ci	{ 0x2, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
143762306a36Sopenharmony_ci	{ 0x2, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
143862306a36Sopenharmony_ci	{ 0x2, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
143962306a36Sopenharmony_ci	{ 0x2, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
144062306a36Sopenharmony_ci	{ 0x2, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
144162306a36Sopenharmony_ci	{ 0x2, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
144262306a36Sopenharmony_ci	{ 0x2, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
144362306a36Sopenharmony_ci	{ 0x2, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
144462306a36Sopenharmony_ci	{ 0x2, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
144562306a36Sopenharmony_ci	{ 0x2, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
144662306a36Sopenharmony_ci	{ 0x2, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
144762306a36Sopenharmony_ci	{ 0x2, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
144862306a36Sopenharmony_ci	{ 0x2, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
144962306a36Sopenharmony_ci	{ 0x2, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
145062306a36Sopenharmony_ci	{ 0x2, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
145162306a36Sopenharmony_ci	{ 0x2, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
145262306a36Sopenharmony_ci	{ 0x2, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
145362306a36Sopenharmony_ci	{ 0x2, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
145462306a36Sopenharmony_ci	{ 0x2, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
145562306a36Sopenharmony_ci	{ 0x2, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
145662306a36Sopenharmony_ci	{ 0x2, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
145762306a36Sopenharmony_ci	{ 0x2, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
145862306a36Sopenharmony_ci	{ 0x2, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
145962306a36Sopenharmony_ci	{ 0x2, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
146062306a36Sopenharmony_ci	{ 0x2, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
146162306a36Sopenharmony_ci	{ 0x2, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
146262306a36Sopenharmony_ci	{ 0x2, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
146362306a36Sopenharmony_ci	{ 0x2, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
146462306a36Sopenharmony_ci	{ 0x2, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
146562306a36Sopenharmony_ci	{ 0x2, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
146662306a36Sopenharmony_ci	{ 0x2, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
146762306a36Sopenharmony_ci	{ 0x2, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
146862306a36Sopenharmony_ci	{ 0x2, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
146962306a36Sopenharmony_ci	{ 0x2, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
147062306a36Sopenharmony_ci	{ 0x2, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
147162306a36Sopenharmony_ci	{ 0x2, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
147262306a36Sopenharmony_ci	{ 0x2, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
147362306a36Sopenharmony_ci	{ 0x2, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
147462306a36Sopenharmony_ci	{ 0x2, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
147562306a36Sopenharmony_ci	{ 0x2, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
147662306a36Sopenharmony_ci	{ 0x2, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 },
147762306a36Sopenharmony_ci	{ 0x3, 0x14, 0x0,  0, 0x40000000, 0,  0x40000000 },
147862306a36Sopenharmony_ci	{ 0x3, 0x14, 0x1,  1, 0x80000000, 1,  0x80000000 },
147962306a36Sopenharmony_ci	{ 0x3, 0x16, 0x0,  2, 0x0b400000, 0,  0x0b400000 },
148062306a36Sopenharmony_ci	{ 0x3, 0x16, 0x1,  2, 0x0bc00000, 1,  0x0bc00000 },
148162306a36Sopenharmony_ci	{ 0x3, 0x16, 0x2,  0, 0x00000000, 0,  0x00000000 },
148262306a36Sopenharmony_ci	{ 0x3, 0x16, 0x3,  0, 0x00000000, 0,  0x00000000 },
148362306a36Sopenharmony_ci	{ 0x4, 0x15, 0x0,  0, 0x20c00000, 8,  0x20c00000 },
148462306a36Sopenharmony_ci	{ 0x4, 0x15, 0x1,  0, 0x21100000, 22, 0x21100000 },
148562306a36Sopenharmony_ci	{ 0x4, 0x15, 0x2,  0, 0x20e00000, 9,  0x20e00000 },
148662306a36Sopenharmony_ci	{ 0x4, 0x15, 0x3,  0, 0x21200000, 23, 0x21200000 },
148762306a36Sopenharmony_ci	{ 0x4, 0x15, 0x4,  0, 0x20800000, 7,  0x20800000 },
148862306a36Sopenharmony_ci	{ 0x4, 0x15, 0x5,  0, 0x21400000, 24, 0x21400000 },
148962306a36Sopenharmony_ci	{ 0x4, 0x15, 0x6,  0, 0x0b000000, 18, 0x0b000000 },
149062306a36Sopenharmony_ci	{ 0x4, 0x15, 0x7,  0, 0x0b800000, 3,  0x0b800000 },
149162306a36Sopenharmony_ci	{ 0x4, 0x15, 0x8,  0, 0x20000000, 6,  0x20000000 },
149262306a36Sopenharmony_ci	{ 0x4, 0x15, 0x9,  0, 0x21800000, 25, 0x21800000 },
149362306a36Sopenharmony_ci	{ 0x4, 0x15, 0xa,  0, 0x0a000000, 2,  0x0a000000 },
149462306a36Sopenharmony_ci	{ 0x4, 0x15, 0xb,  0, 0x0a000000, 17, 0x0a000000 },
149562306a36Sopenharmony_ci	{ 0x4, 0x15, 0xc,  0, 0x20000000, 21, 0x20000000 },
149662306a36Sopenharmony_ci	{ 0x4, 0x15, 0xd,  0, 0x21000000, 10, 0x21000000 },
149762306a36Sopenharmony_ci	{ 0x4, 0x15, 0xe,  0, 0x08000000, 1,  0x08000000 },
149862306a36Sopenharmony_ci	{ 0x4, 0x15, 0xf,  0, 0x08000000, 16, 0x08000000 },
149962306a36Sopenharmony_ci	{ 0x4, 0x15, 0x10, 0, 0x22000000, 11, 0x22000000 },
150062306a36Sopenharmony_ci	{ 0x4, 0x15, 0x11, 0, 0x22000000, 26, 0x22000000 },
150162306a36Sopenharmony_ci	{ 0x4, 0x15, 0x12, 0, 0x0c000000, 4,  0x0c000000 },
150262306a36Sopenharmony_ci	{ 0x4, 0x15, 0x13, 0, 0x0c000000, 19, 0x0c000000 },
150362306a36Sopenharmony_ci	{ 0x4, 0x15, 0x14, 0, 0x24000000, 12, 0x24000000 },
150462306a36Sopenharmony_ci	{ 0x4, 0x15, 0x15, 0, 0x24000000, 27, 0x24000000 },
150562306a36Sopenharmony_ci	{ 0x4, 0x15, 0x16, 0, 0x00000000, 0,  0x00000000 },
150662306a36Sopenharmony_ci	{ 0x4, 0x15, 0x17, 0, 0x00000000, 15, 0x00000000 },
150762306a36Sopenharmony_ci	{ 0x4, 0x15, 0x18, 0, 0x28000000, 13, 0x28000000 },
150862306a36Sopenharmony_ci	{ 0x4, 0x15, 0x19, 0, 0x28000000, 28, 0x28000000 },
150962306a36Sopenharmony_ci	{ 0x4, 0x15, 0x1a, 0, 0x10000000, 5,  0x10000000 },
151062306a36Sopenharmony_ci	{ 0x4, 0x15, 0x1b, 0, 0x10000000, 20, 0x10000000 },
151162306a36Sopenharmony_ci	{ 0x4, 0x15, 0x1c, 0, 0x30000000, 14, 0x30000000 },
151262306a36Sopenharmony_ci	{ 0x4, 0x15, 0x1d, 0, 0x30000000, 29, 0x30000000 },
151362306a36Sopenharmony_ci	{ 0x4, 0x0,  0x0,  0, 0x0b000000, 0,  0x00000000 },
151462306a36Sopenharmony_ci	{ 0x4, 0x0,  0x1,  0, 0x0b800000, 1,  0x00000000 },
151562306a36Sopenharmony_ci	{ 0x4, 0x1,  0x0,  0, 0x20de0000, 3,  0x000e0000 },
151662306a36Sopenharmony_ci	{ 0x4, 0x1,  0x1,  0, 0x210e0000, 7,  0x000e0000 },
151762306a36Sopenharmony_ci	{ 0x4, 0x1,  0x2,  0, 0x20dc0000, 2,  0x000c0000 },
151862306a36Sopenharmony_ci	{ 0x4, 0x1,  0x3,  0, 0x210c0000, 6,  0x000c0000 },
151962306a36Sopenharmony_ci	{ 0x4, 0x1,  0x4,  0, 0x20d80000, 1,  0x00080000 },
152062306a36Sopenharmony_ci	{ 0x4, 0x1,  0x5,  0, 0x21080000, 5,  0x00080000 },
152162306a36Sopenharmony_ci	{ 0x4, 0x1,  0x6,  0, 0x20d00000, 0,  0x00000000 },
152262306a36Sopenharmony_ci	{ 0x4, 0x1,  0x7,  0, 0x21000000, 4,  0x00000000 },
152362306a36Sopenharmony_ci	{ 0x4, 0x2,  0x0,  0, 0x0b040000, 0,  0x00000000 },
152462306a36Sopenharmony_ci	{ 0x4, 0x2,  0x1,  0, 0x0b840000, 1,  0x00000000 },
152562306a36Sopenharmony_ci	{ 0x4, 0x3,  0x0,  0, 0x0b230000, 0,  0x00000000 },
152662306a36Sopenharmony_ci	{ 0x4, 0x3,  0x1,  0, 0x0ba30000, 1,  0x00000000 },
152762306a36Sopenharmony_ci	{ 0x4, 0x4,  0x0,  0, 0x0b050000, 0,  0x00000000 },
152862306a36Sopenharmony_ci	{ 0x4, 0x4,  0x1,  0, 0x0b850000, 1,  0x00000000 },
152962306a36Sopenharmony_ci	{ 0x4, 0x5,  0x0,  0, 0x0b060000, 0,  0x00000000 },
153062306a36Sopenharmony_ci	{ 0x4, 0x5,  0x1,  0, 0x0b070000, 1,  0x00010000 },
153162306a36Sopenharmony_ci	{ 0x4, 0x5,  0x2,  0, 0x0b080000, 2,  0x00020000 },
153262306a36Sopenharmony_ci	{ 0x4, 0x5,  0x3,  0, 0x0b090000, 3,  0x00030000 },
153362306a36Sopenharmony_ci	{ 0x4, 0x5,  0x4,  0, 0x0b0a0000, 4,  0x00040000 },
153462306a36Sopenharmony_ci	{ 0x4, 0x5,  0x5,  0, 0x0b0b0000, 5,  0x00050000 },
153562306a36Sopenharmony_ci	{ 0x4, 0x5,  0x6,  0, 0x0b0c0000, 6,  0x00060000 },
153662306a36Sopenharmony_ci	{ 0x4, 0x5,  0x7,  0, 0x0b0d0000, 7,  0x00070000 },
153762306a36Sopenharmony_ci	{ 0x4, 0x5,  0x8,  0, 0x0b0e0000, 8,  0x00080000 },
153862306a36Sopenharmony_ci	{ 0x4, 0x5,  0x9,  0, 0x0b860000, 9,  0x00000000 },
153962306a36Sopenharmony_ci	{ 0x4, 0x5,  0xa,  0, 0x0b870000, 10, 0x00010000 },
154062306a36Sopenharmony_ci	{ 0x4, 0x5,  0xb,  0, 0x0b880000, 11, 0x00020000 },
154162306a36Sopenharmony_ci	{ 0x4, 0x5,  0xc,  0, 0x0b890000, 12, 0x00030000 },
154262306a36Sopenharmony_ci	{ 0x4, 0x5,  0xd,  0, 0x0b8a0000, 13, 0x00040000 },
154362306a36Sopenharmony_ci	{ 0x4, 0x5,  0xe,  0, 0x0b8b0000, 14, 0x00050000 },
154462306a36Sopenharmony_ci	{ 0x4, 0x5,  0xf,  0, 0x0b8c0000, 15, 0x00060000 },
154562306a36Sopenharmony_ci	{ 0x4, 0x5,  0x10, 0, 0x0b8d0000, 16, 0x00070000 },
154662306a36Sopenharmony_ci	{ 0x4, 0x5,  0x11, 0, 0x0b8e0000, 17, 0x00080000 },
154762306a36Sopenharmony_ci	{ 0x4, 0x6,  0x0,  0, 0x0b650000, 0,  0x00000000 },
154862306a36Sopenharmony_ci	{ 0x4, 0x6,  0x1,  0, 0x0be50000, 1,  0x00000000 },
154962306a36Sopenharmony_ci	{ 0x4, 0x7,  0x0,  0, 0x20df0000, 0,  0x00000000 },
155062306a36Sopenharmony_ci	{ 0x4, 0x7,  0x1,  0, 0x210f0000, 1,  0x00000000 },
155162306a36Sopenharmony_ci	{ 0x4, 0x8,  0x0,  0, 0x0b3e0000, 0,  0x00000000 },
155262306a36Sopenharmony_ci	{ 0x4, 0x8,  0x1,  0, 0x0bbe0000, 1,  0x00000000 },
155362306a36Sopenharmony_ci	{ 0x4, 0x9,  0x0,  0, 0x0b3d0000, 0,  0x00000000 },
155462306a36Sopenharmony_ci	{ 0x4, 0x9,  0x1,  0, 0x0bbd0000, 1,  0x00000000 },
155562306a36Sopenharmony_ci	{ 0x4, 0xa,  0x0,  0, 0x0b1e0000, 0,  0x00000000 },
155662306a36Sopenharmony_ci	{ 0x4, 0xa,  0x1,  0, 0x0b9e0000, 1,  0x00000000 },
155762306a36Sopenharmony_ci	{ 0x4, 0xb,  0x0,  0, 0x0b150000, 0,  0x00000000 },
155862306a36Sopenharmony_ci	{ 0x4, 0xb,  0x1,  0, 0x0b160000, 1,  0x00010000 },
155962306a36Sopenharmony_ci	{ 0x4, 0xb,  0x2,  0, 0x0b170000, 2,  0x00020000 },
156062306a36Sopenharmony_ci	{ 0x4, 0xb,  0x3,  0, 0x0b180000, 3,  0x00030000 },
156162306a36Sopenharmony_ci	{ 0x4, 0xb,  0x4,  0, 0x0b190000, 4,  0x00040000 },
156262306a36Sopenharmony_ci	{ 0x4, 0xb,  0x5,  0, 0x0b1a0000, 5,  0x00050000 },
156362306a36Sopenharmony_ci	{ 0x4, 0xb,  0x6,  0, 0x0b1b0000, 6,  0x00060000 },
156462306a36Sopenharmony_ci	{ 0x4, 0xb,  0x7,  0, 0x0b1c0000, 7,  0x00070000 },
156562306a36Sopenharmony_ci	{ 0x4, 0xb,  0x8,  0, 0x0b1d0000, 8,  0x00080000 },
156662306a36Sopenharmony_ci	{ 0x4, 0xb,  0x9,  0, 0x0b950000, 9,  0x00000000 },
156762306a36Sopenharmony_ci	{ 0x4, 0xb,  0xa,  0, 0x0b960000, 10, 0x00010000 },
156862306a36Sopenharmony_ci	{ 0x4, 0xb,  0xb,  0, 0x0b970000, 11, 0x00020000 },
156962306a36Sopenharmony_ci	{ 0x4, 0xb,  0xc,  0, 0x0b980000, 12, 0x00030000 },
157062306a36Sopenharmony_ci	{ 0x4, 0xb,  0xd,  0, 0x0b990000, 13, 0x00040000 },
157162306a36Sopenharmony_ci	{ 0x4, 0xb,  0xe,  0, 0x0b9a0000, 14, 0x00050000 },
157262306a36Sopenharmony_ci	{ 0x4, 0xb,  0xf,  0, 0x0b9b0000, 15, 0x00060000 },
157362306a36Sopenharmony_ci	{ 0x4, 0xb,  0x10, 0, 0x0b9c0000, 16, 0x00070000 },
157462306a36Sopenharmony_ci	{ 0x4, 0xb,  0x11, 0, 0x0b9d0000, 17, 0x00080000 },
157562306a36Sopenharmony_ci	{ 0x4, 0xc,  0x0,  0, 0x0b660000, 0,  0x00000000 },
157662306a36Sopenharmony_ci	{ 0x4, 0xc,  0x1,  0, 0x0be60000, 1,  0x00000000 },
157762306a36Sopenharmony_ci	{ 0x4, 0xd,  0x0,  0, 0x0b1f0000, 0,  0x00000000 },
157862306a36Sopenharmony_ci	{ 0x4, 0xd,  0x1,  0, 0x0b200000, 1,  0x00010000 },
157962306a36Sopenharmony_ci	{ 0x4, 0xd,  0x2,  0, 0x0b210000, 2,  0x00020000 },
158062306a36Sopenharmony_ci	{ 0x4, 0xd,  0x3,  0, 0x0b220000, 3,  0x00030000 },
158162306a36Sopenharmony_ci	{ 0x4, 0xd,  0x4,  0, 0x0b9f0000, 4,  0x00000000 },
158262306a36Sopenharmony_ci	{ 0x4, 0xd,  0x5,  0, 0x0ba00000, 5,  0x00010000 },
158362306a36Sopenharmony_ci	{ 0x4, 0xd,  0x6,  0, 0x0ba10000, 6,  0x00020000 },
158462306a36Sopenharmony_ci	{ 0x4, 0xd,  0x7,  0, 0x0ba20000, 7,  0x00030000 },
158562306a36Sopenharmony_ci	{ 0x4, 0xe,  0x0,  0, 0x0b0f0000, 0,  0x00000000 },
158662306a36Sopenharmony_ci	{ 0x4, 0xe,  0x1,  0, 0x0b100000, 1,  0x00010000 },
158762306a36Sopenharmony_ci	{ 0x4, 0xe,  0x2,  0, 0x0b110000, 2,  0x00020000 },
158862306a36Sopenharmony_ci	{ 0x4, 0xe,  0x3,  0, 0x0b120000, 3,  0x00030000 },
158962306a36Sopenharmony_ci	{ 0x4, 0xe,  0x4,  0, 0x0b130000, 4,  0x00040000 },
159062306a36Sopenharmony_ci	{ 0x4, 0xe,  0x5,  0, 0x0b140000, 5,  0x00050000 },
159162306a36Sopenharmony_ci	{ 0x4, 0xe,  0x6,  0, 0x0b8f0000, 6,  0x00000000 },
159262306a36Sopenharmony_ci	{ 0x4, 0xe,  0x7,  0, 0x0b900000, 7,  0x00010000 },
159362306a36Sopenharmony_ci	{ 0x4, 0xe,  0x8,  0, 0x0b910000, 8,  0x00020000 },
159462306a36Sopenharmony_ci	{ 0x4, 0xe,  0x9,  0, 0x0b920000, 9,  0x00030000 },
159562306a36Sopenharmony_ci	{ 0x4, 0xe,  0xa,  0, 0x0b930000, 10, 0x00040000 },
159662306a36Sopenharmony_ci	{ 0x4, 0xe,  0xb,  0, 0x0b940000, 11, 0x00050000 },
159762306a36Sopenharmony_ci	{ 0x4, 0x10, 0x0,  0, 0x0b240000, 0,  0x00000000 },
159862306a36Sopenharmony_ci	{ 0x4, 0x10, 0x1,  0, 0x0ba40000, 1,  0x00000000 },
159962306a36Sopenharmony_ci	{ 0x4, 0x11, 0x0,  0, 0x0b020000, 0,  0x00000000 },
160062306a36Sopenharmony_ci	{ 0x4, 0x11, 0x1,  0, 0x0b820000, 1,  0x00000000 },
160162306a36Sopenharmony_ci	{ 0x4, 0x12, 0x0,  0, 0x0b030000, 0,  0x00000000 },
160262306a36Sopenharmony_ci	{ 0x4, 0x12, 0x1,  0, 0x0b830000, 1,  0x00000000 },
160362306a36Sopenharmony_ci	{ 0x4, 0x17, 0x0,  0, 0x0b640000, 0,  0x00000000 },
160462306a36Sopenharmony_ci	{ 0x4, 0x17, 0x1,  0, 0x0be40000, 1,  0x00000000 },
160562306a36Sopenharmony_ci	{ 0x4, 0x18, 0x0,  0, 0x0b600000, 0,  0x00000000 },
160662306a36Sopenharmony_ci	{ 0x4, 0x18, 0x1,  0, 0x0be00000, 1,  0x00000000 },
160762306a36Sopenharmony_ci	{ 0x4, 0x18, 0x2,  0, 0x00000000, 0,  0x00000000 },
160862306a36Sopenharmony_ci	{ 0x4, 0x18, 0x3,  0, 0x00000000, 0,  0x00000000 }
160962306a36Sopenharmony_ci};
161062306a36Sopenharmony_ci
161162306a36Sopenharmony_cistatic void cbbcentralnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
161262306a36Sopenharmony_ci{
161362306a36Sopenharmony_ci	info->initflow = FIELD_GET(CBB_NOC_INITFLOW, routeid);
161462306a36Sopenharmony_ci	info->targflow = FIELD_GET(CBB_NOC_TARGFLOW, routeid);
161562306a36Sopenharmony_ci	info->targ_subrange = FIELD_GET(CBB_NOC_TARG_SUBRANGE, routeid);
161662306a36Sopenharmony_ci	info->seqid = FIELD_GET(CBB_NOC_SEQID, routeid);
161762306a36Sopenharmony_ci}
161862306a36Sopenharmony_ci
161962306a36Sopenharmony_cistatic void bpmpnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
162062306a36Sopenharmony_ci{
162162306a36Sopenharmony_ci	info->initflow = FIELD_GET(BPMP_NOC_INITFLOW, routeid);
162262306a36Sopenharmony_ci	info->targflow = FIELD_GET(BPMP_NOC_TARGFLOW, routeid);
162362306a36Sopenharmony_ci	info->targ_subrange = FIELD_GET(BPMP_NOC_TARG_SUBRANGE, routeid);
162462306a36Sopenharmony_ci	info->seqid = FIELD_GET(BPMP_NOC_SEQID, routeid);
162562306a36Sopenharmony_ci}
162662306a36Sopenharmony_ci
162762306a36Sopenharmony_cistatic void aonnoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
162862306a36Sopenharmony_ci{
162962306a36Sopenharmony_ci	info->initflow = FIELD_GET(AON_NOC_INITFLOW, routeid);
163062306a36Sopenharmony_ci	info->targflow = FIELD_GET(AON_NOC_TARGFLOW, routeid);
163162306a36Sopenharmony_ci	info->targ_subrange = FIELD_GET(AON_NOC_TARG_SUBRANGE, routeid);
163262306a36Sopenharmony_ci	info->seqid = FIELD_GET(AON_NOC_SEQID, routeid);
163362306a36Sopenharmony_ci}
163462306a36Sopenharmony_ci
163562306a36Sopenharmony_cistatic void scenoc_parse_routeid(struct tegra194_cbb_aperture *info, u64 routeid)
163662306a36Sopenharmony_ci{
163762306a36Sopenharmony_ci	info->initflow = FIELD_GET(SCE_NOC_INITFLOW, routeid);
163862306a36Sopenharmony_ci	info->targflow = FIELD_GET(SCE_NOC_TARGFLOW, routeid);
163962306a36Sopenharmony_ci	info->targ_subrange = FIELD_GET(SCE_NOC_TARG_SUBRANGE, routeid);
164062306a36Sopenharmony_ci	info->seqid = FIELD_GET(SCE_NOC_SEQID, routeid);
164162306a36Sopenharmony_ci}
164262306a36Sopenharmony_ci
164362306a36Sopenharmony_cistatic void cbbcentralnoc_parse_userbits(struct tegra194_cbb_userbits *usrbits, u32 elog_5)
164462306a36Sopenharmony_ci{
164562306a36Sopenharmony_ci	usrbits->axcache = FIELD_GET(CBB_NOC_AXCACHE, elog_5);
164662306a36Sopenharmony_ci	usrbits->non_mod = FIELD_GET(CBB_NOC_NON_MOD, elog_5);
164762306a36Sopenharmony_ci	usrbits->axprot = FIELD_GET(CBB_NOC_AXPROT, elog_5);
164862306a36Sopenharmony_ci	usrbits->falconsec = FIELD_GET(CBB_NOC_FALCONSEC, elog_5);
164962306a36Sopenharmony_ci	usrbits->grpsec = FIELD_GET(CBB_NOC_GRPSEC, elog_5);
165062306a36Sopenharmony_ci	usrbits->vqc = FIELD_GET(CBB_NOC_VQC, elog_5);
165162306a36Sopenharmony_ci	usrbits->mstr_id = FIELD_GET(CBB_NOC_MSTR_ID, elog_5) - 1;
165262306a36Sopenharmony_ci	usrbits->axi_id = FIELD_GET(CBB_NOC_AXI_ID, elog_5);
165362306a36Sopenharmony_ci}
165462306a36Sopenharmony_ci
165562306a36Sopenharmony_cistatic void clusternoc_parse_userbits(struct tegra194_cbb_userbits *usrbits, u32 elog_5)
165662306a36Sopenharmony_ci{
165762306a36Sopenharmony_ci	usrbits->axcache = FIELD_GET(CLUSTER_NOC_AXCACHE, elog_5);
165862306a36Sopenharmony_ci	usrbits->axprot = FIELD_GET(CLUSTER_NOC_AXCACHE, elog_5);
165962306a36Sopenharmony_ci	usrbits->falconsec = FIELD_GET(CLUSTER_NOC_FALCONSEC, elog_5);
166062306a36Sopenharmony_ci	usrbits->grpsec = FIELD_GET(CLUSTER_NOC_GRPSEC, elog_5);
166162306a36Sopenharmony_ci	usrbits->vqc = FIELD_GET(CLUSTER_NOC_VQC, elog_5);
166262306a36Sopenharmony_ci	usrbits->mstr_id = FIELD_GET(CLUSTER_NOC_MSTR_ID, elog_5) - 1;
166362306a36Sopenharmony_ci}
166462306a36Sopenharmony_ci
166562306a36Sopenharmony_cistatic void tegra194_cbb_fault_enable(struct tegra_cbb *cbb)
166662306a36Sopenharmony_ci{
166762306a36Sopenharmony_ci	struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
166862306a36Sopenharmony_ci
166962306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_0_FAULTEN_0);
167062306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_1_FAULTEN_0);
167162306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_2_FAULTEN_0);
167262306a36Sopenharmony_ci}
167362306a36Sopenharmony_ci
167462306a36Sopenharmony_cistatic void tegra194_cbb_stall_enable(struct tegra_cbb *cbb)
167562306a36Sopenharmony_ci{
167662306a36Sopenharmony_ci	struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
167762306a36Sopenharmony_ci
167862306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_0_STALLEN_0);
167962306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_1_STALLEN_0);
168062306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_2_STALLEN_0);
168162306a36Sopenharmony_ci}
168262306a36Sopenharmony_ci
168362306a36Sopenharmony_cistatic void tegra194_cbb_error_clear(struct tegra_cbb *cbb)
168462306a36Sopenharmony_ci{
168562306a36Sopenharmony_ci	struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
168662306a36Sopenharmony_ci
168762306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_0_ERRCLR_0);
168862306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_1_ERRCLR_0);
168962306a36Sopenharmony_ci	writel(1, priv->regs + ERRLOGGER_2_ERRCLR_0);
169062306a36Sopenharmony_ci	dsb(sy);
169162306a36Sopenharmony_ci}
169262306a36Sopenharmony_ci
169362306a36Sopenharmony_cistatic u32 tegra194_cbb_get_status(struct tegra_cbb *cbb)
169462306a36Sopenharmony_ci{
169562306a36Sopenharmony_ci	struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
169662306a36Sopenharmony_ci	u32 value;
169762306a36Sopenharmony_ci
169862306a36Sopenharmony_ci	value = readl(priv->regs + ERRLOGGER_0_ERRVLD_0);
169962306a36Sopenharmony_ci	value |= (readl(priv->regs + ERRLOGGER_1_ERRVLD_0) << 1);
170062306a36Sopenharmony_ci	value |= (readl(priv->regs + ERRLOGGER_2_ERRVLD_0) << 2);
170162306a36Sopenharmony_ci
170262306a36Sopenharmony_ci	dsb(sy);
170362306a36Sopenharmony_ci	return value;
170462306a36Sopenharmony_ci}
170562306a36Sopenharmony_ci
170662306a36Sopenharmony_cistatic u32 tegra194_axi2apb_status(void __iomem *addr)
170762306a36Sopenharmony_ci{
170862306a36Sopenharmony_ci	u32 value;
170962306a36Sopenharmony_ci
171062306a36Sopenharmony_ci	value = readl(addr + DMAAPB_X_RAW_INTERRUPT_STATUS);
171162306a36Sopenharmony_ci	writel(0xffffffff, addr + DMAAPB_X_RAW_INTERRUPT_STATUS);
171262306a36Sopenharmony_ci
171362306a36Sopenharmony_ci	return value;
171462306a36Sopenharmony_ci}
171562306a36Sopenharmony_ci
171662306a36Sopenharmony_cistatic bool tegra194_axi2apb_fatal(struct seq_file *file, unsigned int bridge, u32 status)
171762306a36Sopenharmony_ci{
171862306a36Sopenharmony_ci	bool is_fatal = true;
171962306a36Sopenharmony_ci	size_t i;
172062306a36Sopenharmony_ci
172162306a36Sopenharmony_ci	for (i = 0; i < ARRAY_SIZE(tegra194_axi2apb_error); i++) {
172262306a36Sopenharmony_ci		if (status & BIT(i)) {
172362306a36Sopenharmony_ci			tegra_cbb_print_err(file, "\t  AXI2APB_%d bridge error: %s\n",
172462306a36Sopenharmony_ci					    bridge + 1, tegra194_axi2apb_error[i]);
172562306a36Sopenharmony_ci			if (strstr(tegra194_axi2apb_error[i], "Firewall"))
172662306a36Sopenharmony_ci				is_fatal = false;
172762306a36Sopenharmony_ci		}
172862306a36Sopenharmony_ci	}
172962306a36Sopenharmony_ci
173062306a36Sopenharmony_ci	return is_fatal;
173162306a36Sopenharmony_ci}
173262306a36Sopenharmony_ci
173362306a36Sopenharmony_ci/*
173462306a36Sopenharmony_ci * Fetch InitlocalAddress from NOC Aperture lookup table
173562306a36Sopenharmony_ci * using Targflow, Targsubrange
173662306a36Sopenharmony_ci */
173762306a36Sopenharmony_cistatic u32 get_init_localaddress(const struct tegra194_cbb_aperture *info,
173862306a36Sopenharmony_ci				 const struct tegra194_cbb_aperture *aper, unsigned int max)
173962306a36Sopenharmony_ci{
174062306a36Sopenharmony_ci	unsigned int t_f = 0, t_sr = 0;
174162306a36Sopenharmony_ci	u32 addr = 0;
174262306a36Sopenharmony_ci
174362306a36Sopenharmony_ci	for (t_f = 0; t_f < max; t_f++) {
174462306a36Sopenharmony_ci		if (aper[t_f].targflow == info->targflow) {
174562306a36Sopenharmony_ci			t_sr = t_f;
174662306a36Sopenharmony_ci
174762306a36Sopenharmony_ci			do {
174862306a36Sopenharmony_ci				if (aper[t_sr].targ_subrange == info->targ_subrange) {
174962306a36Sopenharmony_ci					addr = aper[t_sr].init_localaddress;
175062306a36Sopenharmony_ci					return addr;
175162306a36Sopenharmony_ci				}
175262306a36Sopenharmony_ci
175362306a36Sopenharmony_ci				if (t_sr >= max)
175462306a36Sopenharmony_ci					return 0;
175562306a36Sopenharmony_ci
175662306a36Sopenharmony_ci				t_sr++;
175762306a36Sopenharmony_ci			} while (aper[t_sr].targflow == aper[t_sr - 1].targflow);
175862306a36Sopenharmony_ci
175962306a36Sopenharmony_ci			t_f = t_sr;
176062306a36Sopenharmony_ci		}
176162306a36Sopenharmony_ci	}
176262306a36Sopenharmony_ci
176362306a36Sopenharmony_ci	return addr;
176462306a36Sopenharmony_ci}
176562306a36Sopenharmony_ci
176662306a36Sopenharmony_cistatic void print_errlog5(struct seq_file *file, struct tegra194_cbb *cbb)
176762306a36Sopenharmony_ci{
176862306a36Sopenharmony_ci	struct tegra194_cbb_userbits userbits;
176962306a36Sopenharmony_ci
177062306a36Sopenharmony_ci	cbb->noc->parse_userbits(&userbits, cbb->errlog5);
177162306a36Sopenharmony_ci
177262306a36Sopenharmony_ci	if (!strcmp(cbb->noc->name, "cbb-noc")) {
177362306a36Sopenharmony_ci		tegra_cbb_print_err(file, "\t  Non-Modify\t\t: %#x\n", userbits.non_mod);
177462306a36Sopenharmony_ci		tegra_cbb_print_err(file, "\t  AXI ID\t\t: %#x\n", userbits.axi_id);
177562306a36Sopenharmony_ci	}
177662306a36Sopenharmony_ci
177762306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Master ID\t\t: %s\n",
177862306a36Sopenharmony_ci			    cbb->noc->master_id[userbits.mstr_id]);
177962306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Security Group(GRPSEC): %#x\n", userbits.grpsec);
178062306a36Sopenharmony_ci	tegra_cbb_print_cache(file, userbits.axcache);
178162306a36Sopenharmony_ci	tegra_cbb_print_prot(file, userbits.axprot);
178262306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  FALCONSEC\t\t: %#x\n", userbits.falconsec);
178362306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Virtual Queuing Channel(VQC): %#x\n", userbits.vqc);
178462306a36Sopenharmony_ci}
178562306a36Sopenharmony_ci
178662306a36Sopenharmony_ci/*
178762306a36Sopenharmony_ci *  Fetch Base Address/InitlocalAddress from NOC aperture lookup table using TargFlow &
178862306a36Sopenharmony_ci *  Targ_subRange extracted from RouteId. Perform address reconstruction as below:
178962306a36Sopenharmony_ci *
179062306a36Sopenharmony_ci *    Address = Base Address + (ErrLog3 + ErrLog4)
179162306a36Sopenharmony_ci */
179262306a36Sopenharmony_cistatic void
179362306a36Sopenharmony_ciprint_errlog3_4(struct seq_file *file, u32 errlog3, u32 errlog4,
179462306a36Sopenharmony_ci		const struct tegra194_cbb_aperture *info,
179562306a36Sopenharmony_ci		const struct tegra194_cbb_aperture *aperture, unsigned int max)
179662306a36Sopenharmony_ci{
179762306a36Sopenharmony_ci	u64 addr = (u64)errlog4 << 32 | errlog3;
179862306a36Sopenharmony_ci
179962306a36Sopenharmony_ci	/*
180062306a36Sopenharmony_ci	 * If errlog4[7] = "1", then it's a joker entry. Joker entries are a rare phenomenon and
180162306a36Sopenharmony_ci	 * such addresses are not reliable. Debugging should be done using only the RouteId
180262306a36Sopenharmony_ci	 * information.
180362306a36Sopenharmony_ci	 */
180462306a36Sopenharmony_ci	if (errlog4 & 0x80)
180562306a36Sopenharmony_ci		tegra_cbb_print_err(file, "\t debug using RouteId alone as below address is a "
180662306a36Sopenharmony_ci					  "joker entry and not reliable");
180762306a36Sopenharmony_ci
180862306a36Sopenharmony_ci	addr += get_init_localaddress(info, aperture, max);
180962306a36Sopenharmony_ci
181062306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Address accessed\t: %#llx\n", addr);
181162306a36Sopenharmony_ci}
181262306a36Sopenharmony_ci
181362306a36Sopenharmony_ci/*
181462306a36Sopenharmony_ci *  Get RouteId from ErrLog1+ErrLog2 registers and fetch values of
181562306a36Sopenharmony_ci *  InitFlow, TargFlow, Targ_subRange and SeqId values from RouteId
181662306a36Sopenharmony_ci */
181762306a36Sopenharmony_cistatic void
181862306a36Sopenharmony_ciprint_errlog1_2(struct seq_file *file, struct tegra194_cbb *cbb,
181962306a36Sopenharmony_ci		struct tegra194_cbb_aperture *info)
182062306a36Sopenharmony_ci{
182162306a36Sopenharmony_ci	u64 routeid = (u64)cbb->errlog2 << 32 | cbb->errlog1;
182262306a36Sopenharmony_ci	u32 seqid = 0;
182362306a36Sopenharmony_ci
182462306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  RouteId\t\t: %#llx\n", routeid);
182562306a36Sopenharmony_ci
182662306a36Sopenharmony_ci	cbb->noc->parse_routeid(info, routeid);
182762306a36Sopenharmony_ci
182862306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  InitFlow\t\t: %s\n",
182962306a36Sopenharmony_ci			    cbb->noc->routeid_initflow[info->initflow]);
183062306a36Sopenharmony_ci
183162306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Targflow\t\t: %s\n",
183262306a36Sopenharmony_ci			    cbb->noc->routeid_targflow[info->targflow]);
183362306a36Sopenharmony_ci
183462306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  TargSubRange\t\t: %d\n", info->targ_subrange);
183562306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  SeqId\t\t\t: %d\n", seqid);
183662306a36Sopenharmony_ci}
183762306a36Sopenharmony_ci
183862306a36Sopenharmony_ci/*
183962306a36Sopenharmony_ci * Print transcation type, error code and description from ErrLog0 for all
184062306a36Sopenharmony_ci * errors. For NOC slave errors, all relevant error info is printed using
184162306a36Sopenharmony_ci * ErrLog0 only. But additional information is printed for errors from
184262306a36Sopenharmony_ci * APB slaves because for them:
184362306a36Sopenharmony_ci *  - All errors are logged as SLV(slave) errors due to APB having only single
184462306a36Sopenharmony_ci *    bit pslverr to report all errors.
184562306a36Sopenharmony_ci *  - Exact cause is printed by reading DMAAPB_X_RAW_INTERRUPT_STATUS register.
184662306a36Sopenharmony_ci *  - The driver prints information showing AXI2APB bridge and exact error
184762306a36Sopenharmony_ci *    only if there is error in any AXI2APB slave.
184862306a36Sopenharmony_ci *  - There is still no way to disambiguate a DEC error from SLV error type.
184962306a36Sopenharmony_ci */
185062306a36Sopenharmony_cistatic bool print_errlog0(struct seq_file *file, struct tegra194_cbb *cbb)
185162306a36Sopenharmony_ci{
185262306a36Sopenharmony_ci	struct tegra194_cbb_packet_header hdr;
185362306a36Sopenharmony_ci	bool is_fatal = true;
185462306a36Sopenharmony_ci
185562306a36Sopenharmony_ci	hdr.lock = cbb->errlog0 & 0x1;
185662306a36Sopenharmony_ci	hdr.opc = FIELD_GET(CBB_ERR_OPC, cbb->errlog0);
185762306a36Sopenharmony_ci	hdr.errcode = FIELD_GET(CBB_ERR_ERRCODE, cbb->errlog0);
185862306a36Sopenharmony_ci	hdr.len1 = FIELD_GET(CBB_ERR_LEN1, cbb->errlog0);
185962306a36Sopenharmony_ci	hdr.format = (cbb->errlog0 >> 31);
186062306a36Sopenharmony_ci
186162306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Transaction Type\t: %s\n",
186262306a36Sopenharmony_ci			    tegra194_cbb_trantype[hdr.opc]);
186362306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Error Code\t\t: %s\n",
186462306a36Sopenharmony_ci			    tegra194_cbb_errors[hdr.errcode].code);
186562306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Error Source\t\t: %s\n",
186662306a36Sopenharmony_ci			    tegra194_cbb_errors[hdr.errcode].source);
186762306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Error Description\t: %s\n",
186862306a36Sopenharmony_ci			    tegra194_cbb_errors[hdr.errcode].desc);
186962306a36Sopenharmony_ci
187062306a36Sopenharmony_ci	/*
187162306a36Sopenharmony_ci	 * Do not crash system for errors which are only notifications to indicate a transaction
187262306a36Sopenharmony_ci	 * was not allowed to be attempted.
187362306a36Sopenharmony_ci	 */
187462306a36Sopenharmony_ci	if (!strcmp(tegra194_cbb_errors[hdr.errcode].code, "SEC") ||
187562306a36Sopenharmony_ci	    !strcmp(tegra194_cbb_errors[hdr.errcode].code, "DEC") ||
187662306a36Sopenharmony_ci	    !strcmp(tegra194_cbb_errors[hdr.errcode].code, "UNS") ||
187762306a36Sopenharmony_ci	    !strcmp(tegra194_cbb_errors[hdr.errcode].code, "DISC")) {
187862306a36Sopenharmony_ci		is_fatal = false;
187962306a36Sopenharmony_ci	} else if (!strcmp(tegra194_cbb_errors[hdr.errcode].code, "SLV") &&
188062306a36Sopenharmony_ci		   cbb->num_bridges > 0) {
188162306a36Sopenharmony_ci		unsigned int i;
188262306a36Sopenharmony_ci		u32 status;
188362306a36Sopenharmony_ci
188462306a36Sopenharmony_ci		/* For all SLV errors, read DMAAPB_X_RAW_INTERRUPT_STATUS
188562306a36Sopenharmony_ci		 * register to get error status for all AXI2APB bridges.
188662306a36Sopenharmony_ci		 * Print bridge details if a bit is set in a bridge's
188762306a36Sopenharmony_ci		 * status register due to error in a APB slave connected
188862306a36Sopenharmony_ci		 * to that bridge. For other NOC slaves, none of the status
188962306a36Sopenharmony_ci		 * register will be set.
189062306a36Sopenharmony_ci		 */
189162306a36Sopenharmony_ci
189262306a36Sopenharmony_ci		for (i = 0; i < cbb->num_bridges; i++) {
189362306a36Sopenharmony_ci			status = tegra194_axi2apb_status(cbb->bridges[i].base);
189462306a36Sopenharmony_ci
189562306a36Sopenharmony_ci			if (status)
189662306a36Sopenharmony_ci				is_fatal = tegra194_axi2apb_fatal(file, i, status);
189762306a36Sopenharmony_ci		}
189862306a36Sopenharmony_ci	}
189962306a36Sopenharmony_ci
190062306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Packet header Lock\t: %d\n", hdr.lock);
190162306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t  Packet header Len1\t: %d\n", hdr.len1);
190262306a36Sopenharmony_ci
190362306a36Sopenharmony_ci	if (hdr.format)
190462306a36Sopenharmony_ci		tegra_cbb_print_err(file, "\t  NOC protocol version\t: %s\n",
190562306a36Sopenharmony_ci				    "version >= 2.7");
190662306a36Sopenharmony_ci	else
190762306a36Sopenharmony_ci		tegra_cbb_print_err(file, "\t  NOC protocol version\t: %s\n",
190862306a36Sopenharmony_ci				    "version < 2.7");
190962306a36Sopenharmony_ci
191062306a36Sopenharmony_ci	return is_fatal;
191162306a36Sopenharmony_ci}
191262306a36Sopenharmony_ci
191362306a36Sopenharmony_ci/*
191462306a36Sopenharmony_ci * Print debug information about failed transaction using
191562306a36Sopenharmony_ci * ErrLog registers of error loggger having ErrVld set
191662306a36Sopenharmony_ci */
191762306a36Sopenharmony_cistatic bool print_errloggerX_info(struct seq_file *file, struct tegra194_cbb *cbb,
191862306a36Sopenharmony_ci				  int errloggerX)
191962306a36Sopenharmony_ci{
192062306a36Sopenharmony_ci	struct tegra194_cbb_aperture info = { 0, };
192162306a36Sopenharmony_ci	bool is_fatal = true;
192262306a36Sopenharmony_ci
192362306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tError Logger\t\t: %d\n", errloggerX);
192462306a36Sopenharmony_ci
192562306a36Sopenharmony_ci	if (errloggerX == 0) {
192662306a36Sopenharmony_ci		cbb->errlog0 = readl(cbb->regs + ERRLOGGER_0_ERRLOG0_0);
192762306a36Sopenharmony_ci		cbb->errlog1 = readl(cbb->regs + ERRLOGGER_0_ERRLOG1_0);
192862306a36Sopenharmony_ci		cbb->errlog2 = readl(cbb->regs + ERRLOGGER_0_RSVD_00_0);
192962306a36Sopenharmony_ci		cbb->errlog3 = readl(cbb->regs + ERRLOGGER_0_ERRLOG3_0);
193062306a36Sopenharmony_ci		cbb->errlog4 = readl(cbb->regs + ERRLOGGER_0_ERRLOG4_0);
193162306a36Sopenharmony_ci		cbb->errlog5 = readl(cbb->regs + ERRLOGGER_0_ERRLOG5_0);
193262306a36Sopenharmony_ci	} else if (errloggerX == 1) {
193362306a36Sopenharmony_ci		cbb->errlog0 = readl(cbb->regs + ERRLOGGER_1_ERRLOG0_0);
193462306a36Sopenharmony_ci		cbb->errlog1 = readl(cbb->regs + ERRLOGGER_1_ERRLOG1_0);
193562306a36Sopenharmony_ci		cbb->errlog2 = readl(cbb->regs + ERRLOGGER_1_RSVD_00_0);
193662306a36Sopenharmony_ci		cbb->errlog3 = readl(cbb->regs + ERRLOGGER_1_ERRLOG3_0);
193762306a36Sopenharmony_ci		cbb->errlog4 = readl(cbb->regs + ERRLOGGER_1_ERRLOG4_0);
193862306a36Sopenharmony_ci		cbb->errlog5 = readl(cbb->regs + ERRLOGGER_1_ERRLOG5_0);
193962306a36Sopenharmony_ci	} else if (errloggerX == 2) {
194062306a36Sopenharmony_ci		cbb->errlog0 = readl(cbb->regs + ERRLOGGER_2_ERRLOG0_0);
194162306a36Sopenharmony_ci		cbb->errlog1 = readl(cbb->regs + ERRLOGGER_2_ERRLOG1_0);
194262306a36Sopenharmony_ci		cbb->errlog2 = readl(cbb->regs + ERRLOGGER_2_RSVD_00_0);
194362306a36Sopenharmony_ci		cbb->errlog3 = readl(cbb->regs + ERRLOGGER_2_ERRLOG3_0);
194462306a36Sopenharmony_ci		cbb->errlog4 = readl(cbb->regs + ERRLOGGER_2_ERRLOG4_0);
194562306a36Sopenharmony_ci		cbb->errlog5 = readl(cbb->regs + ERRLOGGER_2_ERRLOG5_0);
194662306a36Sopenharmony_ci	}
194762306a36Sopenharmony_ci
194862306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog0\t\t\t: %#x\n", cbb->errlog0);
194962306a36Sopenharmony_ci	is_fatal = print_errlog0(file, cbb);
195062306a36Sopenharmony_ci
195162306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog1\t\t\t: %#x\n", cbb->errlog1);
195262306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog2\t\t\t: %#x\n", cbb->errlog2);
195362306a36Sopenharmony_ci	print_errlog1_2(file, cbb, &info);
195462306a36Sopenharmony_ci
195562306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog3\t\t\t: %#x\n", cbb->errlog3);
195662306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog4\t\t\t: %#x\n", cbb->errlog4);
195762306a36Sopenharmony_ci	print_errlog3_4(file, cbb->errlog3, cbb->errlog4, &info, cbb->noc->noc_aperture,
195862306a36Sopenharmony_ci			cbb->noc->max_aperture);
195962306a36Sopenharmony_ci
196062306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\tErrLog5\t\t\t: %#x\n", cbb->errlog5);
196162306a36Sopenharmony_ci
196262306a36Sopenharmony_ci	if (cbb->errlog5)
196362306a36Sopenharmony_ci		print_errlog5(file, cbb);
196462306a36Sopenharmony_ci
196562306a36Sopenharmony_ci	return is_fatal;
196662306a36Sopenharmony_ci}
196762306a36Sopenharmony_ci
196862306a36Sopenharmony_cistatic bool print_errlog(struct seq_file *file, struct tegra194_cbb *cbb, u32 errvld)
196962306a36Sopenharmony_ci{
197062306a36Sopenharmony_ci	bool is_fatal = true;
197162306a36Sopenharmony_ci
197262306a36Sopenharmony_ci	pr_crit("**************************************\n");
197362306a36Sopenharmony_ci	pr_crit("CPU:%d, Error:%s\n", smp_processor_id(), cbb->noc->name);
197462306a36Sopenharmony_ci
197562306a36Sopenharmony_ci	if (errvld & 0x1)
197662306a36Sopenharmony_ci		is_fatal = print_errloggerX_info(file, cbb, 0);
197762306a36Sopenharmony_ci	else if (errvld & 0x2)
197862306a36Sopenharmony_ci		is_fatal = print_errloggerX_info(file, cbb, 1);
197962306a36Sopenharmony_ci	else if (errvld & 0x4)
198062306a36Sopenharmony_ci		is_fatal = print_errloggerX_info(file, cbb, 2);
198162306a36Sopenharmony_ci
198262306a36Sopenharmony_ci	tegra_cbb_error_clear(&cbb->base);
198362306a36Sopenharmony_ci	tegra_cbb_print_err(file, "\t**************************************\n");
198462306a36Sopenharmony_ci	return is_fatal;
198562306a36Sopenharmony_ci}
198662306a36Sopenharmony_ci
198762306a36Sopenharmony_ci#ifdef CONFIG_DEBUG_FS
198862306a36Sopenharmony_cistatic DEFINE_MUTEX(cbb_err_mutex);
198962306a36Sopenharmony_ci
199062306a36Sopenharmony_cistatic int tegra194_cbb_debugfs_show(struct tegra_cbb *cbb, struct seq_file *file, void *data)
199162306a36Sopenharmony_ci{
199262306a36Sopenharmony_ci	struct tegra_cbb *noc;
199362306a36Sopenharmony_ci
199462306a36Sopenharmony_ci	mutex_lock(&cbb_err_mutex);
199562306a36Sopenharmony_ci
199662306a36Sopenharmony_ci	list_for_each_entry(noc, &cbb_list, node) {
199762306a36Sopenharmony_ci		struct tegra194_cbb *priv = to_tegra194_cbb(noc);
199862306a36Sopenharmony_ci		u32 status;
199962306a36Sopenharmony_ci
200062306a36Sopenharmony_ci		status = tegra_cbb_get_status(noc);
200162306a36Sopenharmony_ci		if (status)
200262306a36Sopenharmony_ci			print_errlog(file, priv, status);
200362306a36Sopenharmony_ci	}
200462306a36Sopenharmony_ci
200562306a36Sopenharmony_ci	mutex_unlock(&cbb_err_mutex);
200662306a36Sopenharmony_ci
200762306a36Sopenharmony_ci	return 0;
200862306a36Sopenharmony_ci}
200962306a36Sopenharmony_ci#endif
201062306a36Sopenharmony_ci
201162306a36Sopenharmony_ci/*
201262306a36Sopenharmony_ci * Handler for CBB errors from different initiators
201362306a36Sopenharmony_ci */
201462306a36Sopenharmony_cistatic irqreturn_t tegra194_cbb_err_isr(int irq, void *data)
201562306a36Sopenharmony_ci{
201662306a36Sopenharmony_ci	bool is_inband_err = false, is_fatal = false;
201762306a36Sopenharmony_ci	//struct tegra194_cbb *cbb = data;
201862306a36Sopenharmony_ci	struct tegra_cbb *noc;
201962306a36Sopenharmony_ci	unsigned long flags;
202062306a36Sopenharmony_ci	u8 mstr_id = 0;
202162306a36Sopenharmony_ci
202262306a36Sopenharmony_ci	spin_lock_irqsave(&cbb_lock, flags);
202362306a36Sopenharmony_ci
202462306a36Sopenharmony_ci	/* XXX only process interrupts for "cbb" instead of iterating over all NOCs? */
202562306a36Sopenharmony_ci	list_for_each_entry(noc, &cbb_list, node) {
202662306a36Sopenharmony_ci		struct tegra194_cbb *priv = to_tegra194_cbb(noc);
202762306a36Sopenharmony_ci		u32 status = 0;
202862306a36Sopenharmony_ci
202962306a36Sopenharmony_ci		status = tegra_cbb_get_status(noc);
203062306a36Sopenharmony_ci
203162306a36Sopenharmony_ci		if (status && ((irq == priv->sec_irq) || (irq == priv->nonsec_irq))) {
203262306a36Sopenharmony_ci			tegra_cbb_print_err(NULL, "CPU:%d, Error: %s@%llx, irq=%d\n",
203362306a36Sopenharmony_ci					    smp_processor_id(), priv->noc->name, priv->res->start,
203462306a36Sopenharmony_ci					    irq);
203562306a36Sopenharmony_ci
203662306a36Sopenharmony_ci			is_fatal = print_errlog(NULL, priv, status);
203762306a36Sopenharmony_ci
203862306a36Sopenharmony_ci			/*
203962306a36Sopenharmony_ci			 * If illegal request is from CCPLEX(0x1) initiator
204062306a36Sopenharmony_ci			 * and error is fatal then call BUG() to crash system.
204162306a36Sopenharmony_ci			 */
204262306a36Sopenharmony_ci			if (priv->noc->erd_mask_inband_err) {
204362306a36Sopenharmony_ci				mstr_id =  FIELD_GET(CBB_NOC_MSTR_ID, priv->errlog5);
204462306a36Sopenharmony_ci				if (mstr_id == 0x1)
204562306a36Sopenharmony_ci					is_inband_err = 1;
204662306a36Sopenharmony_ci			}
204762306a36Sopenharmony_ci		}
204862306a36Sopenharmony_ci	}
204962306a36Sopenharmony_ci
205062306a36Sopenharmony_ci	spin_unlock_irqrestore(&cbb_lock, flags);
205162306a36Sopenharmony_ci
205262306a36Sopenharmony_ci	if (is_inband_err) {
205362306a36Sopenharmony_ci		if (is_fatal)
205462306a36Sopenharmony_ci			BUG();
205562306a36Sopenharmony_ci		else
205662306a36Sopenharmony_ci			WARN(true, "Warning due to CBB Error\n");
205762306a36Sopenharmony_ci	}
205862306a36Sopenharmony_ci
205962306a36Sopenharmony_ci	return IRQ_HANDLED;
206062306a36Sopenharmony_ci}
206162306a36Sopenharmony_ci
206262306a36Sopenharmony_ci/*
206362306a36Sopenharmony_ci * Register handler for CBB_NONSECURE & CBB_SECURE interrupts
206462306a36Sopenharmony_ci * for reporting CBB errors
206562306a36Sopenharmony_ci */
206662306a36Sopenharmony_cistatic int tegra194_cbb_interrupt_enable(struct tegra_cbb *cbb)
206762306a36Sopenharmony_ci{
206862306a36Sopenharmony_ci	struct tegra194_cbb *priv = to_tegra194_cbb(cbb);
206962306a36Sopenharmony_ci	struct device *dev = cbb->dev;
207062306a36Sopenharmony_ci	int err;
207162306a36Sopenharmony_ci
207262306a36Sopenharmony_ci	if (priv->sec_irq) {
207362306a36Sopenharmony_ci		err = devm_request_irq(dev, priv->sec_irq, tegra194_cbb_err_isr, 0, dev_name(dev),
207462306a36Sopenharmony_ci				       priv);
207562306a36Sopenharmony_ci		if (err) {
207662306a36Sopenharmony_ci			dev_err(dev, "failed to register interrupt %u: %d\n", priv->sec_irq, err);
207762306a36Sopenharmony_ci			return err;
207862306a36Sopenharmony_ci		}
207962306a36Sopenharmony_ci	}
208062306a36Sopenharmony_ci
208162306a36Sopenharmony_ci	if (priv->nonsec_irq) {
208262306a36Sopenharmony_ci		err = devm_request_irq(dev, priv->nonsec_irq, tegra194_cbb_err_isr, 0,
208362306a36Sopenharmony_ci				       dev_name(dev), priv);
208462306a36Sopenharmony_ci		if (err) {
208562306a36Sopenharmony_ci			dev_err(dev, "failed to register interrupt %u: %d\n", priv->nonsec_irq,
208662306a36Sopenharmony_ci				err);
208762306a36Sopenharmony_ci			return err;
208862306a36Sopenharmony_ci		}
208962306a36Sopenharmony_ci	}
209062306a36Sopenharmony_ci
209162306a36Sopenharmony_ci	return 0;
209262306a36Sopenharmony_ci}
209362306a36Sopenharmony_ci
209462306a36Sopenharmony_cistatic void tegra194_cbb_error_enable(struct tegra_cbb *cbb)
209562306a36Sopenharmony_ci{
209662306a36Sopenharmony_ci	/*
209762306a36Sopenharmony_ci	 * Set “StallEn=1” to enable queuing of error packets till
209862306a36Sopenharmony_ci	 * first is served & cleared
209962306a36Sopenharmony_ci	 */
210062306a36Sopenharmony_ci	tegra_cbb_stall_enable(cbb);
210162306a36Sopenharmony_ci
210262306a36Sopenharmony_ci	/* set “FaultEn=1” to enable error reporting signal “Fault” */
210362306a36Sopenharmony_ci	tegra_cbb_fault_enable(cbb);
210462306a36Sopenharmony_ci}
210562306a36Sopenharmony_ci
210662306a36Sopenharmony_cistatic const struct tegra_cbb_ops tegra194_cbb_ops = {
210762306a36Sopenharmony_ci	.get_status = tegra194_cbb_get_status,
210862306a36Sopenharmony_ci	.error_clear = tegra194_cbb_error_clear,
210962306a36Sopenharmony_ci	.fault_enable = tegra194_cbb_fault_enable,
211062306a36Sopenharmony_ci	.stall_enable = tegra194_cbb_stall_enable,
211162306a36Sopenharmony_ci	.error_enable = tegra194_cbb_error_enable,
211262306a36Sopenharmony_ci	.interrupt_enable = tegra194_cbb_interrupt_enable,
211362306a36Sopenharmony_ci#ifdef CONFIG_DEBUG_FS
211462306a36Sopenharmony_ci	.debugfs_show = tegra194_cbb_debugfs_show,
211562306a36Sopenharmony_ci#endif
211662306a36Sopenharmony_ci};
211762306a36Sopenharmony_ci
211862306a36Sopenharmony_cistatic struct tegra194_cbb_noc_data tegra194_cbb_central_noc_data = {
211962306a36Sopenharmony_ci	.name = "cbb-noc",
212062306a36Sopenharmony_ci	.erd_mask_inband_err = true,
212162306a36Sopenharmony_ci	.master_id = tegra194_master_id,
212262306a36Sopenharmony_ci	.noc_aperture = tegra194_cbbcentralnoc_apert_lookup,
212362306a36Sopenharmony_ci	.max_aperture = ARRAY_SIZE(tegra194_cbbcentralnoc_apert_lookup),
212462306a36Sopenharmony_ci	.routeid_initflow = tegra194_cbbcentralnoc_routeid_initflow,
212562306a36Sopenharmony_ci	.routeid_targflow = tegra194_cbbcentralnoc_routeid_targflow,
212662306a36Sopenharmony_ci	.parse_routeid = cbbcentralnoc_parse_routeid,
212762306a36Sopenharmony_ci	.parse_userbits = cbbcentralnoc_parse_userbits
212862306a36Sopenharmony_ci};
212962306a36Sopenharmony_ci
213062306a36Sopenharmony_cistatic struct tegra194_cbb_noc_data tegra194_aon_noc_data = {
213162306a36Sopenharmony_ci	.name = "aon-noc",
213262306a36Sopenharmony_ci	.erd_mask_inband_err = false,
213362306a36Sopenharmony_ci	.master_id = tegra194_master_id,
213462306a36Sopenharmony_ci	.noc_aperture = tegra194_aonnoc_aperture_lookup,
213562306a36Sopenharmony_ci	.max_aperture = ARRAY_SIZE(tegra194_aonnoc_aperture_lookup),
213662306a36Sopenharmony_ci	.routeid_initflow = tegra194_aonnoc_routeid_initflow,
213762306a36Sopenharmony_ci	.routeid_targflow = tegra194_aonnoc_routeid_targflow,
213862306a36Sopenharmony_ci	.parse_routeid = aonnoc_parse_routeid,
213962306a36Sopenharmony_ci	.parse_userbits = clusternoc_parse_userbits
214062306a36Sopenharmony_ci};
214162306a36Sopenharmony_ci
214262306a36Sopenharmony_cistatic struct tegra194_cbb_noc_data tegra194_bpmp_noc_data = {
214362306a36Sopenharmony_ci	.name = "bpmp-noc",
214462306a36Sopenharmony_ci	.erd_mask_inband_err = false,
214562306a36Sopenharmony_ci	.master_id = tegra194_master_id,
214662306a36Sopenharmony_ci	.noc_aperture = tegra194_bpmpnoc_apert_lookup,
214762306a36Sopenharmony_ci	.max_aperture = ARRAY_SIZE(tegra194_bpmpnoc_apert_lookup),
214862306a36Sopenharmony_ci	.routeid_initflow = tegra194_bpmpnoc_routeid_initflow,
214962306a36Sopenharmony_ci	.routeid_targflow = tegra194_bpmpnoc_routeid_targflow,
215062306a36Sopenharmony_ci	.parse_routeid = bpmpnoc_parse_routeid,
215162306a36Sopenharmony_ci	.parse_userbits = clusternoc_parse_userbits
215262306a36Sopenharmony_ci};
215362306a36Sopenharmony_ci
215462306a36Sopenharmony_cistatic struct tegra194_cbb_noc_data tegra194_rce_noc_data = {
215562306a36Sopenharmony_ci	.name = "rce-noc",
215662306a36Sopenharmony_ci	.erd_mask_inband_err = false,
215762306a36Sopenharmony_ci	.master_id = tegra194_master_id,
215862306a36Sopenharmony_ci	.noc_aperture = tegra194_scenoc_apert_lookup,
215962306a36Sopenharmony_ci	.max_aperture = ARRAY_SIZE(tegra194_scenoc_apert_lookup),
216062306a36Sopenharmony_ci	.routeid_initflow = tegra194_scenoc_routeid_initflow,
216162306a36Sopenharmony_ci	.routeid_targflow = tegra194_scenoc_routeid_targflow,
216262306a36Sopenharmony_ci	.parse_routeid = scenoc_parse_routeid,
216362306a36Sopenharmony_ci	.parse_userbits = clusternoc_parse_userbits
216462306a36Sopenharmony_ci};
216562306a36Sopenharmony_ci
216662306a36Sopenharmony_cistatic struct tegra194_cbb_noc_data tegra194_sce_noc_data = {
216762306a36Sopenharmony_ci	.name = "sce-noc",
216862306a36Sopenharmony_ci	.erd_mask_inband_err = false,
216962306a36Sopenharmony_ci	.master_id = tegra194_master_id,
217062306a36Sopenharmony_ci	.noc_aperture = tegra194_scenoc_apert_lookup,
217162306a36Sopenharmony_ci	.max_aperture = ARRAY_SIZE(tegra194_scenoc_apert_lookup),
217262306a36Sopenharmony_ci	.routeid_initflow = tegra194_scenoc_routeid_initflow,
217362306a36Sopenharmony_ci	.routeid_targflow = tegra194_scenoc_routeid_targflow,
217462306a36Sopenharmony_ci	.parse_routeid = scenoc_parse_routeid,
217562306a36Sopenharmony_ci	.parse_userbits = clusternoc_parse_userbits
217662306a36Sopenharmony_ci};
217762306a36Sopenharmony_ci
217862306a36Sopenharmony_cistatic const struct of_device_id tegra194_cbb_match[] = {
217962306a36Sopenharmony_ci	{ .compatible = "nvidia,tegra194-cbb-noc", .data = &tegra194_cbb_central_noc_data },
218062306a36Sopenharmony_ci	{ .compatible = "nvidia,tegra194-aon-noc", .data = &tegra194_aon_noc_data },
218162306a36Sopenharmony_ci	{ .compatible = "nvidia,tegra194-bpmp-noc", .data = &tegra194_bpmp_noc_data },
218262306a36Sopenharmony_ci	{ .compatible = "nvidia,tegra194-rce-noc", .data = &tegra194_rce_noc_data },
218362306a36Sopenharmony_ci	{ .compatible = "nvidia,tegra194-sce-noc", .data = &tegra194_sce_noc_data },
218462306a36Sopenharmony_ci	{ /* sentinel */ }
218562306a36Sopenharmony_ci};
218662306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, tegra194_cbb_match);
218762306a36Sopenharmony_ci
218862306a36Sopenharmony_cistatic int tegra194_cbb_get_bridges(struct tegra194_cbb *cbb, struct device_node *np)
218962306a36Sopenharmony_ci{
219062306a36Sopenharmony_ci	struct tegra_cbb *entry;
219162306a36Sopenharmony_ci	unsigned long flags;
219262306a36Sopenharmony_ci	unsigned int i;
219362306a36Sopenharmony_ci	int err;
219462306a36Sopenharmony_ci
219562306a36Sopenharmony_ci	spin_lock_irqsave(&cbb_lock, flags);
219662306a36Sopenharmony_ci
219762306a36Sopenharmony_ci	list_for_each_entry(entry, &cbb_list, node) {
219862306a36Sopenharmony_ci		struct tegra194_cbb *priv = to_tegra194_cbb(entry);
219962306a36Sopenharmony_ci
220062306a36Sopenharmony_ci		if (priv->bridges) {
220162306a36Sopenharmony_ci			cbb->num_bridges = priv->num_bridges;
220262306a36Sopenharmony_ci			cbb->bridges = priv->bridges;
220362306a36Sopenharmony_ci			break;
220462306a36Sopenharmony_ci		}
220562306a36Sopenharmony_ci	}
220662306a36Sopenharmony_ci
220762306a36Sopenharmony_ci	spin_unlock_irqrestore(&cbb_lock, flags);
220862306a36Sopenharmony_ci
220962306a36Sopenharmony_ci	if (!cbb->bridges) {
221062306a36Sopenharmony_ci		cbb->num_bridges = of_address_count(np);
221162306a36Sopenharmony_ci
221262306a36Sopenharmony_ci		cbb->bridges = devm_kcalloc(cbb->base.dev, cbb->num_bridges,
221362306a36Sopenharmony_ci					    sizeof(*cbb->bridges), GFP_KERNEL);
221462306a36Sopenharmony_ci		if (!cbb->bridges)
221562306a36Sopenharmony_ci			return -ENOMEM;
221662306a36Sopenharmony_ci
221762306a36Sopenharmony_ci		for (i = 0; i < cbb->num_bridges; i++) {
221862306a36Sopenharmony_ci			err = of_address_to_resource(np, i, &cbb->bridges[i].res);
221962306a36Sopenharmony_ci			if (err < 0)
222062306a36Sopenharmony_ci				return err;
222162306a36Sopenharmony_ci
222262306a36Sopenharmony_ci			cbb->bridges[i].base = devm_ioremap_resource(cbb->base.dev,
222362306a36Sopenharmony_ci								     &cbb->bridges[i].res);
222462306a36Sopenharmony_ci			if (IS_ERR(cbb->bridges[i].base))
222562306a36Sopenharmony_ci				return PTR_ERR(cbb->bridges[i].base);
222662306a36Sopenharmony_ci		}
222762306a36Sopenharmony_ci	}
222862306a36Sopenharmony_ci
222962306a36Sopenharmony_ci	if (cbb->num_bridges > 0) {
223062306a36Sopenharmony_ci		dev_dbg(cbb->base.dev, "AXI2APB bridge info present:\n");
223162306a36Sopenharmony_ci
223262306a36Sopenharmony_ci		for (i = 0; i < cbb->num_bridges; i++)
223362306a36Sopenharmony_ci			dev_dbg(cbb->base.dev, "  %u: %pR\n", i, &cbb->bridges[i].res);
223462306a36Sopenharmony_ci	}
223562306a36Sopenharmony_ci
223662306a36Sopenharmony_ci	return 0;
223762306a36Sopenharmony_ci}
223862306a36Sopenharmony_ci
223962306a36Sopenharmony_cistatic int tegra194_cbb_probe(struct platform_device *pdev)
224062306a36Sopenharmony_ci{
224162306a36Sopenharmony_ci	const struct tegra194_cbb_noc_data *noc;
224262306a36Sopenharmony_ci	struct tegra194_cbb *cbb;
224362306a36Sopenharmony_ci	struct device_node *np;
224462306a36Sopenharmony_ci	unsigned long flags;
224562306a36Sopenharmony_ci	int err;
224662306a36Sopenharmony_ci
224762306a36Sopenharmony_ci	noc = of_device_get_match_data(&pdev->dev);
224862306a36Sopenharmony_ci
224962306a36Sopenharmony_ci	if (noc->erd_mask_inband_err) {
225062306a36Sopenharmony_ci		/*
225162306a36Sopenharmony_ci		 * Set Error Response Disable(ERD) bit to mask SError/inband
225262306a36Sopenharmony_ci		 * error and only trigger interrupts for illegal access from
225362306a36Sopenharmony_ci		 * CCPLEX initiator.
225462306a36Sopenharmony_ci		 */
225562306a36Sopenharmony_ci		err = tegra194_miscreg_mask_serror();
225662306a36Sopenharmony_ci		if (err) {
225762306a36Sopenharmony_ci			dev_err(&pdev->dev, "couldn't mask inband errors\n");
225862306a36Sopenharmony_ci			return err;
225962306a36Sopenharmony_ci		}
226062306a36Sopenharmony_ci	}
226162306a36Sopenharmony_ci
226262306a36Sopenharmony_ci	cbb = devm_kzalloc(&pdev->dev, sizeof(*cbb), GFP_KERNEL);
226362306a36Sopenharmony_ci	if (!cbb)
226462306a36Sopenharmony_ci		return -ENOMEM;
226562306a36Sopenharmony_ci
226662306a36Sopenharmony_ci	INIT_LIST_HEAD(&cbb->base.node);
226762306a36Sopenharmony_ci	cbb->base.ops = &tegra194_cbb_ops;
226862306a36Sopenharmony_ci	cbb->base.dev = &pdev->dev;
226962306a36Sopenharmony_ci	cbb->noc = noc;
227062306a36Sopenharmony_ci
227162306a36Sopenharmony_ci	cbb->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &cbb->res);
227262306a36Sopenharmony_ci	if (IS_ERR(cbb->regs))
227362306a36Sopenharmony_ci		return PTR_ERR(cbb->regs);
227462306a36Sopenharmony_ci
227562306a36Sopenharmony_ci	err = tegra_cbb_get_irq(pdev, &cbb->nonsec_irq, &cbb->sec_irq);
227662306a36Sopenharmony_ci	if (err)
227762306a36Sopenharmony_ci		return err;
227862306a36Sopenharmony_ci
227962306a36Sopenharmony_ci	np = of_parse_phandle(pdev->dev.of_node, "nvidia,axi2apb", 0);
228062306a36Sopenharmony_ci	if (np) {
228162306a36Sopenharmony_ci		err = tegra194_cbb_get_bridges(cbb, np);
228262306a36Sopenharmony_ci		of_node_put(np);
228362306a36Sopenharmony_ci		if (err < 0)
228462306a36Sopenharmony_ci			return err;
228562306a36Sopenharmony_ci	}
228662306a36Sopenharmony_ci
228762306a36Sopenharmony_ci	platform_set_drvdata(pdev, cbb);
228862306a36Sopenharmony_ci
228962306a36Sopenharmony_ci	spin_lock_irqsave(&cbb_lock, flags);
229062306a36Sopenharmony_ci	list_add(&cbb->base.node, &cbb_list);
229162306a36Sopenharmony_ci	spin_unlock_irqrestore(&cbb_lock, flags);
229262306a36Sopenharmony_ci
229362306a36Sopenharmony_ci	return tegra_cbb_register(&cbb->base);
229462306a36Sopenharmony_ci}
229562306a36Sopenharmony_ci
229662306a36Sopenharmony_cistatic int tegra194_cbb_remove(struct platform_device *pdev)
229762306a36Sopenharmony_ci{
229862306a36Sopenharmony_ci	struct tegra194_cbb *cbb = platform_get_drvdata(pdev);
229962306a36Sopenharmony_ci	struct tegra_cbb *noc, *tmp;
230062306a36Sopenharmony_ci	unsigned long flags;
230162306a36Sopenharmony_ci
230262306a36Sopenharmony_ci	spin_lock_irqsave(&cbb_lock, flags);
230362306a36Sopenharmony_ci
230462306a36Sopenharmony_ci	list_for_each_entry_safe(noc, tmp, &cbb_list, node) {
230562306a36Sopenharmony_ci		struct tegra194_cbb *priv = to_tegra194_cbb(noc);
230662306a36Sopenharmony_ci
230762306a36Sopenharmony_ci		if (cbb->res->start == priv->res->start) {
230862306a36Sopenharmony_ci			list_del(&noc->node);
230962306a36Sopenharmony_ci			break;
231062306a36Sopenharmony_ci		}
231162306a36Sopenharmony_ci	}
231262306a36Sopenharmony_ci
231362306a36Sopenharmony_ci	spin_unlock_irqrestore(&cbb_lock, flags);
231462306a36Sopenharmony_ci
231562306a36Sopenharmony_ci	return 0;
231662306a36Sopenharmony_ci}
231762306a36Sopenharmony_ci
231862306a36Sopenharmony_cistatic int __maybe_unused tegra194_cbb_resume_noirq(struct device *dev)
231962306a36Sopenharmony_ci{
232062306a36Sopenharmony_ci	struct tegra194_cbb *cbb = dev_get_drvdata(dev);
232162306a36Sopenharmony_ci
232262306a36Sopenharmony_ci	tegra194_cbb_error_enable(&cbb->base);
232362306a36Sopenharmony_ci	dsb(sy);
232462306a36Sopenharmony_ci
232562306a36Sopenharmony_ci	dev_dbg(dev, "%s resumed\n", cbb->noc->name);
232662306a36Sopenharmony_ci	return 0;
232762306a36Sopenharmony_ci}
232862306a36Sopenharmony_ci
232962306a36Sopenharmony_cistatic const struct dev_pm_ops tegra194_cbb_pm = {
233062306a36Sopenharmony_ci	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(NULL, tegra194_cbb_resume_noirq)
233162306a36Sopenharmony_ci};
233262306a36Sopenharmony_ci
233362306a36Sopenharmony_cistatic struct platform_driver tegra194_cbb_driver = {
233462306a36Sopenharmony_ci	.probe = tegra194_cbb_probe,
233562306a36Sopenharmony_ci	.remove = tegra194_cbb_remove,
233662306a36Sopenharmony_ci	.driver = {
233762306a36Sopenharmony_ci		.name = "tegra194-cbb",
233862306a36Sopenharmony_ci		.of_match_table = of_match_ptr(tegra194_cbb_match),
233962306a36Sopenharmony_ci		.pm = &tegra194_cbb_pm,
234062306a36Sopenharmony_ci	},
234162306a36Sopenharmony_ci};
234262306a36Sopenharmony_ci
234362306a36Sopenharmony_cistatic int __init tegra194_cbb_init(void)
234462306a36Sopenharmony_ci{
234562306a36Sopenharmony_ci	return platform_driver_register(&tegra194_cbb_driver);
234662306a36Sopenharmony_ci}
234762306a36Sopenharmony_cipure_initcall(tegra194_cbb_init);
234862306a36Sopenharmony_ci
234962306a36Sopenharmony_cistatic void __exit tegra194_cbb_exit(void)
235062306a36Sopenharmony_ci{
235162306a36Sopenharmony_ci	platform_driver_unregister(&tegra194_cbb_driver);
235262306a36Sopenharmony_ci}
235362306a36Sopenharmony_cimodule_exit(tegra194_cbb_exit);
235462306a36Sopenharmony_ci
235562306a36Sopenharmony_ciMODULE_AUTHOR("Sumit Gupta <sumitg@nvidia.com>");
235662306a36Sopenharmony_ciMODULE_DESCRIPTION("Control Backbone error handling driver for Tegra194");
2357