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