xref: /illumos-gate/usr/src/uts/common/io/cxgbe/t4nex/t4_ioctl.c (revision fcabbd87549f01117a5d466ddcaaf1fa39ee2c14)
156b2bdd1SGireesh Nagabhushana /*
256b2bdd1SGireesh Nagabhushana  * This file and its contents are supplied under the terms of the
356b2bdd1SGireesh Nagabhushana  * Common Development and Distribution License ("CDDL"), version 1.0.
456b2bdd1SGireesh Nagabhushana  * You may only use this file in accordance with the terms of version
556b2bdd1SGireesh Nagabhushana  * 1.0 of the CDDL.
656b2bdd1SGireesh Nagabhushana  *
756b2bdd1SGireesh Nagabhushana  * A full copy of the text of the CDDL should have accompanied this
856b2bdd1SGireesh Nagabhushana  * source. A copy of the CDDL is also available via the Internet at
956b2bdd1SGireesh Nagabhushana  * http://www.illumos.org/license/CDDL.
1056b2bdd1SGireesh Nagabhushana  */
1156b2bdd1SGireesh Nagabhushana 
1256b2bdd1SGireesh Nagabhushana /*
1356b2bdd1SGireesh Nagabhushana  * This file is part of the Chelsio T4 support code.
1456b2bdd1SGireesh Nagabhushana  *
1556b2bdd1SGireesh Nagabhushana  * Copyright (C) 2011-2013 Chelsio Communications.  All rights reserved.
1656b2bdd1SGireesh Nagabhushana  *
1756b2bdd1SGireesh Nagabhushana  * This program is distributed in the hope that it will be useful, but WITHOUT
1856b2bdd1SGireesh Nagabhushana  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1956b2bdd1SGireesh Nagabhushana  * FITNESS FOR A PARTICULAR PURPOSE.  See the LICENSE file included in this
2056b2bdd1SGireesh Nagabhushana  * release for licensing terms and conditions.
2156b2bdd1SGireesh Nagabhushana  */
2256b2bdd1SGireesh Nagabhushana 
2356b2bdd1SGireesh Nagabhushana #include <sys/ddi.h>
2456b2bdd1SGireesh Nagabhushana #include <sys/sunddi.h>
2556b2bdd1SGireesh Nagabhushana #include <sys/queue.h>
2656b2bdd1SGireesh Nagabhushana 
2756b2bdd1SGireesh Nagabhushana #include "t4nex.h"
2856b2bdd1SGireesh Nagabhushana #include "common/common.h"
2956b2bdd1SGireesh Nagabhushana #include "common/t4_regs.h"
307e6ad469SVishal Kulkarni #include "cudbg.h"
3156b2bdd1SGireesh Nagabhushana 
3256b2bdd1SGireesh Nagabhushana /* helpers */
3356b2bdd1SGireesh Nagabhushana static int pci_rw(struct adapter *sc, void *data, int flags, int write);
3456b2bdd1SGireesh Nagabhushana static int reg_rw(struct adapter *sc, void *data, int flags, int write);
3556b2bdd1SGireesh Nagabhushana static void reg_block_dump(struct adapter *sc, uint8_t *buf, unsigned int start,
3656b2bdd1SGireesh Nagabhushana     unsigned int end);
3756b2bdd1SGireesh Nagabhushana static int regdump(struct adapter *sc, void *data, int flags);
3856b2bdd1SGireesh Nagabhushana static int get_sge_context(struct adapter *sc, void *data, int flags);
3956b2bdd1SGireesh Nagabhushana static int get_devlog(struct adapter *sc, void *data, int flags);
40de483253SVishal Kulkarni static int validate_mem_range(struct adapter *, uint32_t, int);
4156b2bdd1SGireesh Nagabhushana static int read_card_mem(struct adapter *sc, void *data, int flags);
4256b2bdd1SGireesh Nagabhushana static int read_tid_tab(struct adapter *sc, void *data, int flags);
4356b2bdd1SGireesh Nagabhushana static int read_mbox(struct adapter *sc, void *data, int flags);
4456b2bdd1SGireesh Nagabhushana static int read_cim_la(struct adapter *sc, void *data, int flags);
4556b2bdd1SGireesh Nagabhushana static int read_cim_qcfg(struct adapter *sc, void *data, int flags);
4656b2bdd1SGireesh Nagabhushana static int read_cim_ibq(struct adapter *sc, void *data, int flags);
4756b2bdd1SGireesh Nagabhushana static int read_edc(struct adapter *sc, void *data, int flags);
485a9113e7SVishal Kulkarni static int flash_fw(struct adapter *, void *, int);
497e6ad469SVishal Kulkarni static int get_cudbg(struct adapter *, void *, int);
5056b2bdd1SGireesh Nagabhushana 
5156b2bdd1SGireesh Nagabhushana int
t4_ioctl(struct adapter * sc,int cmd,void * data,int mode)5256b2bdd1SGireesh Nagabhushana t4_ioctl(struct adapter *sc, int cmd, void *data, int mode)
5356b2bdd1SGireesh Nagabhushana {
5456b2bdd1SGireesh Nagabhushana 	int rc = ENOTSUP;
5556b2bdd1SGireesh Nagabhushana 
5656b2bdd1SGireesh Nagabhushana 	switch (cmd) {
5756b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_PCIGET32:
5856b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_PCIPUT32:
5956b2bdd1SGireesh Nagabhushana 		rc = pci_rw(sc, data, mode, cmd == T4_IOCTL_PCIPUT32);
6056b2bdd1SGireesh Nagabhushana 		break;
6156b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET32:
6256b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_PUT32:
6356b2bdd1SGireesh Nagabhushana 		rc = reg_rw(sc, data, mode, cmd == T4_IOCTL_PUT32);
6456b2bdd1SGireesh Nagabhushana 		break;
6556b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_REGDUMP:
6656b2bdd1SGireesh Nagabhushana 		rc = regdump(sc, data, mode);
6756b2bdd1SGireesh Nagabhushana 		break;
6856b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_SGE_CONTEXT:
6956b2bdd1SGireesh Nagabhushana 		rc = get_sge_context(sc, data, mode);
7056b2bdd1SGireesh Nagabhushana 		break;
7156b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_DEVLOG:
7256b2bdd1SGireesh Nagabhushana 		rc = get_devlog(sc, data, mode);
7356b2bdd1SGireesh Nagabhushana 		break;
7456b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_MEM:
7556b2bdd1SGireesh Nagabhushana 		rc = read_card_mem(sc, data, mode);
7656b2bdd1SGireesh Nagabhushana 		break;
7756b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_TID_TAB:
7856b2bdd1SGireesh Nagabhushana 		rc = read_tid_tab(sc, data, mode);
7956b2bdd1SGireesh Nagabhushana 		break;
8056b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_MBOX:
8156b2bdd1SGireesh Nagabhushana 		rc = read_mbox(sc, data, mode);
8256b2bdd1SGireesh Nagabhushana 		break;
8356b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_CIM_LA:
8456b2bdd1SGireesh Nagabhushana 		rc = read_cim_la(sc, data, mode);
8556b2bdd1SGireesh Nagabhushana 		break;
8656b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_CIM_QCFG:
8756b2bdd1SGireesh Nagabhushana 		rc = read_cim_qcfg(sc, data, mode);
8856b2bdd1SGireesh Nagabhushana 		break;
8956b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_CIM_IBQ:
9056b2bdd1SGireesh Nagabhushana 		rc = read_cim_ibq(sc, data, mode);
9156b2bdd1SGireesh Nagabhushana 		break;
9256b2bdd1SGireesh Nagabhushana 	case T4_IOCTL_GET_EDC:
9356b2bdd1SGireesh Nagabhushana 		rc = read_edc(sc, data, mode);
9456b2bdd1SGireesh Nagabhushana 		break;
955a9113e7SVishal Kulkarni 	case T4_IOCTL_LOAD_FW:
965a9113e7SVishal Kulkarni 		rc = flash_fw(sc, data, mode);
975a9113e7SVishal Kulkarni 		break;
987e6ad469SVishal Kulkarni 	case T4_IOCTL_GET_CUDBG:
997e6ad469SVishal Kulkarni 		rc = get_cudbg(sc, data, mode);
1007e6ad469SVishal Kulkarni 		break;
10156b2bdd1SGireesh Nagabhushana 	default:
10256b2bdd1SGireesh Nagabhushana 		return (EINVAL);
10356b2bdd1SGireesh Nagabhushana 	}
10456b2bdd1SGireesh Nagabhushana 
10556b2bdd1SGireesh Nagabhushana 	return (rc);
10656b2bdd1SGireesh Nagabhushana }
10756b2bdd1SGireesh Nagabhushana 
10856b2bdd1SGireesh Nagabhushana static int
pci_rw(struct adapter * sc,void * data,int flags,int write)10956b2bdd1SGireesh Nagabhushana pci_rw(struct adapter *sc, void *data, int flags, int write)
11056b2bdd1SGireesh Nagabhushana {
11156b2bdd1SGireesh Nagabhushana 	struct t4_reg32_cmd r;
11256b2bdd1SGireesh Nagabhushana 
11356b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &r, sizeof (r), flags) < 0)
11456b2bdd1SGireesh Nagabhushana 		return (EFAULT);
11556b2bdd1SGireesh Nagabhushana 
11656b2bdd1SGireesh Nagabhushana 	/* address must be 32 bit aligned */
11756b2bdd1SGireesh Nagabhushana 	r.reg &= ~0x3;
11856b2bdd1SGireesh Nagabhushana 
11956b2bdd1SGireesh Nagabhushana 	if (write != 0)
12056b2bdd1SGireesh Nagabhushana 		t4_os_pci_write_cfg4(sc, r.reg, r.value);
12156b2bdd1SGireesh Nagabhushana 	else {
12256b2bdd1SGireesh Nagabhushana 		t4_os_pci_read_cfg4(sc, r.reg, &r.value);
12356b2bdd1SGireesh Nagabhushana 		if (ddi_copyout(&r, data, sizeof (r), flags) < 0)
12456b2bdd1SGireesh Nagabhushana 			return (EFAULT);
12556b2bdd1SGireesh Nagabhushana 	}
12656b2bdd1SGireesh Nagabhushana 
12756b2bdd1SGireesh Nagabhushana 	return (0);
12856b2bdd1SGireesh Nagabhushana }
12956b2bdd1SGireesh Nagabhushana 
13056b2bdd1SGireesh Nagabhushana static int
reg_rw(struct adapter * sc,void * data,int flags,int write)13156b2bdd1SGireesh Nagabhushana reg_rw(struct adapter *sc, void *data, int flags, int write)
13256b2bdd1SGireesh Nagabhushana {
13356b2bdd1SGireesh Nagabhushana 	struct t4_reg32_cmd r;
13456b2bdd1SGireesh Nagabhushana 
13556b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &r, sizeof (r), flags) < 0)
13656b2bdd1SGireesh Nagabhushana 		return (EFAULT);
13756b2bdd1SGireesh Nagabhushana 
13856b2bdd1SGireesh Nagabhushana 	/* Register address must be 32 bit aligned */
13956b2bdd1SGireesh Nagabhushana 	r.reg &= ~0x3;
14056b2bdd1SGireesh Nagabhushana 
14156b2bdd1SGireesh Nagabhushana 	if (write != 0)
14256b2bdd1SGireesh Nagabhushana 		t4_write_reg(sc, r.reg, r.value);
14356b2bdd1SGireesh Nagabhushana 	else {
14456b2bdd1SGireesh Nagabhushana 		r.value = t4_read_reg(sc, r.reg);
14556b2bdd1SGireesh Nagabhushana 		if (ddi_copyout(&r, data, sizeof (r), flags) < 0)
14656b2bdd1SGireesh Nagabhushana 			return (EFAULT);
14756b2bdd1SGireesh Nagabhushana 	}
14856b2bdd1SGireesh Nagabhushana 
14956b2bdd1SGireesh Nagabhushana 	return (0);
15056b2bdd1SGireesh Nagabhushana }
15156b2bdd1SGireesh Nagabhushana 
15256b2bdd1SGireesh Nagabhushana static void
reg_block_dump(struct adapter * sc,uint8_t * buf,unsigned int start,unsigned int end)15356b2bdd1SGireesh Nagabhushana reg_block_dump(struct adapter *sc, uint8_t *buf, unsigned int start,
15456b2bdd1SGireesh Nagabhushana     unsigned int end)
15556b2bdd1SGireesh Nagabhushana {
15656b2bdd1SGireesh Nagabhushana 	/* LINTED: E_BAD_PTR_CAST_ALIGN */
15756b2bdd1SGireesh Nagabhushana 	uint32_t *p = (uint32_t *)(buf + start);
15856b2bdd1SGireesh Nagabhushana 
15956b2bdd1SGireesh Nagabhushana 	for (/* */; start <= end; start += sizeof (uint32_t))
16056b2bdd1SGireesh Nagabhushana 		*p++ = t4_read_reg(sc, start);
16156b2bdd1SGireesh Nagabhushana }
16256b2bdd1SGireesh Nagabhushana 
163de483253SVishal Kulkarni /*
164de483253SVishal Kulkarni  * Return a version number to identify the type of adapter.  The scheme is:
165de483253SVishal Kulkarni  * - bits 0..9: chip version
166de483253SVishal Kulkarni  * - bits 10..15: chip revision
167de483253SVishal Kulkarni  * - bits 16..23: register dump version
168de483253SVishal Kulkarni  */
169de483253SVishal Kulkarni static inline
mk_adap_vers(const struct adapter * sc)170de483253SVishal Kulkarni unsigned int mk_adap_vers(const struct adapter *sc)
171de483253SVishal Kulkarni {
172de483253SVishal Kulkarni 	return CHELSIO_CHIP_VERSION(sc->params.chip) |
173de483253SVishal Kulkarni 		(CHELSIO_CHIP_RELEASE(sc->params.chip) << 10) | (1 << 16);
174de483253SVishal Kulkarni }
175de483253SVishal Kulkarni 
17656b2bdd1SGireesh Nagabhushana static int
regdump(struct adapter * sc,void * data,int flags)17756b2bdd1SGireesh Nagabhushana regdump(struct adapter *sc, void *data, int flags)
17856b2bdd1SGireesh Nagabhushana {
17956b2bdd1SGireesh Nagabhushana 	struct t4_regdump r;
18056b2bdd1SGireesh Nagabhushana 	uint8_t *buf;
181de483253SVishal Kulkarni 	static const unsigned int *reg_ranges;
182de483253SVishal Kulkarni 	int rc = 0, arr_size = 0, buf_size = 0, i;
183de483253SVishal Kulkarni 	static const unsigned int t4_reg_ranges[] = {
18456b2bdd1SGireesh Nagabhushana 		0x1008, 0x1108,
18556b2bdd1SGireesh Nagabhushana 		0x1180, 0x11b4,
18656b2bdd1SGireesh Nagabhushana 		0x11fc, 0x123c,
18756b2bdd1SGireesh Nagabhushana 		0x1300, 0x173c,
18856b2bdd1SGireesh Nagabhushana 		0x1800, 0x18fc,
18956b2bdd1SGireesh Nagabhushana 		0x3000, 0x30d8,
19056b2bdd1SGireesh Nagabhushana 		0x30e0, 0x5924,
19156b2bdd1SGireesh Nagabhushana 		0x5960, 0x59d4,
19256b2bdd1SGireesh Nagabhushana 		0x5a00, 0x5af8,
19356b2bdd1SGireesh Nagabhushana 		0x6000, 0x6098,
19456b2bdd1SGireesh Nagabhushana 		0x6100, 0x6150,
19556b2bdd1SGireesh Nagabhushana 		0x6200, 0x6208,
19656b2bdd1SGireesh Nagabhushana 		0x6240, 0x6248,
19756b2bdd1SGireesh Nagabhushana 		0x6280, 0x6338,
19856b2bdd1SGireesh Nagabhushana 		0x6370, 0x638c,
19956b2bdd1SGireesh Nagabhushana 		0x6400, 0x643c,
20056b2bdd1SGireesh Nagabhushana 		0x6500, 0x6524,
20156b2bdd1SGireesh Nagabhushana 		0x6a00, 0x6a38,
20256b2bdd1SGireesh Nagabhushana 		0x6a60, 0x6a78,
20356b2bdd1SGireesh Nagabhushana 		0x6b00, 0x6b84,
20456b2bdd1SGireesh Nagabhushana 		0x6bf0, 0x6c84,
20556b2bdd1SGireesh Nagabhushana 		0x6cf0, 0x6d84,
20656b2bdd1SGireesh Nagabhushana 		0x6df0, 0x6e84,
20756b2bdd1SGireesh Nagabhushana 		0x6ef0, 0x6f84,
20856b2bdd1SGireesh Nagabhushana 		0x6ff0, 0x7084,
20956b2bdd1SGireesh Nagabhushana 		0x70f0, 0x7184,
21056b2bdd1SGireesh Nagabhushana 		0x71f0, 0x7284,
21156b2bdd1SGireesh Nagabhushana 		0x72f0, 0x7384,
21256b2bdd1SGireesh Nagabhushana 		0x73f0, 0x7450,
21356b2bdd1SGireesh Nagabhushana 		0x7500, 0x7530,
21456b2bdd1SGireesh Nagabhushana 		0x7600, 0x761c,
21556b2bdd1SGireesh Nagabhushana 		0x7680, 0x76cc,
21656b2bdd1SGireesh Nagabhushana 		0x7700, 0x7798,
21756b2bdd1SGireesh Nagabhushana 		0x77c0, 0x77fc,
21856b2bdd1SGireesh Nagabhushana 		0x7900, 0x79fc,
21956b2bdd1SGireesh Nagabhushana 		0x7b00, 0x7c38,
22056b2bdd1SGireesh Nagabhushana 		0x7d00, 0x7efc,
22156b2bdd1SGireesh Nagabhushana 		0x8dc0, 0x8e1c,
22256b2bdd1SGireesh Nagabhushana 		0x8e30, 0x8e78,
22356b2bdd1SGireesh Nagabhushana 		0x8ea0, 0x8f6c,
22456b2bdd1SGireesh Nagabhushana 		0x8fc0, 0x9074,
22556b2bdd1SGireesh Nagabhushana 		0x90fc, 0x90fc,
22656b2bdd1SGireesh Nagabhushana 		0x9400, 0x9458,
22756b2bdd1SGireesh Nagabhushana 		0x9600, 0x96bc,
22856b2bdd1SGireesh Nagabhushana 		0x9800, 0x9808,
22956b2bdd1SGireesh Nagabhushana 		0x9820, 0x983c,
23056b2bdd1SGireesh Nagabhushana 		0x9850, 0x9864,
23156b2bdd1SGireesh Nagabhushana 		0x9c00, 0x9c6c,
23256b2bdd1SGireesh Nagabhushana 		0x9c80, 0x9cec,
23356b2bdd1SGireesh Nagabhushana 		0x9d00, 0x9d6c,
23456b2bdd1SGireesh Nagabhushana 		0x9d80, 0x9dec,
23556b2bdd1SGireesh Nagabhushana 		0x9e00, 0x9e6c,
23656b2bdd1SGireesh Nagabhushana 		0x9e80, 0x9eec,
23756b2bdd1SGireesh Nagabhushana 		0x9f00, 0x9f6c,
23856b2bdd1SGireesh Nagabhushana 		0x9f80, 0x9fec,
23956b2bdd1SGireesh Nagabhushana 		0xd004, 0xd03c,
24056b2bdd1SGireesh Nagabhushana 		0xdfc0, 0xdfe0,
24156b2bdd1SGireesh Nagabhushana 		0xe000, 0xea7c,
24256b2bdd1SGireesh Nagabhushana 		0xf000, 0x11190,
24356b2bdd1SGireesh Nagabhushana 		0x19040, 0x19124,
24456b2bdd1SGireesh Nagabhushana 		0x19150, 0x191b0,
24556b2bdd1SGireesh Nagabhushana 		0x191d0, 0x191e8,
24656b2bdd1SGireesh Nagabhushana 		0x19238, 0x1924c,
24756b2bdd1SGireesh Nagabhushana 		0x193f8, 0x19474,
24856b2bdd1SGireesh Nagabhushana 		0x19490, 0x194f8,
24956b2bdd1SGireesh Nagabhushana 		0x19800, 0x19f30,
25056b2bdd1SGireesh Nagabhushana 		0x1a000, 0x1a06c,
25156b2bdd1SGireesh Nagabhushana 		0x1a0b0, 0x1a120,
25256b2bdd1SGireesh Nagabhushana 		0x1a128, 0x1a138,
25356b2bdd1SGireesh Nagabhushana 		0x1a190, 0x1a1c4,
25456b2bdd1SGireesh Nagabhushana 		0x1a1fc, 0x1a1fc,
25556b2bdd1SGireesh Nagabhushana 		0x1e040, 0x1e04c,
25656b2bdd1SGireesh Nagabhushana 		0x1e240, 0x1e28c,
25756b2bdd1SGireesh Nagabhushana 		0x1e2c0, 0x1e2c0,
25856b2bdd1SGireesh Nagabhushana 		0x1e2e0, 0x1e2e0,
25956b2bdd1SGireesh Nagabhushana 		0x1e300, 0x1e384,
26056b2bdd1SGireesh Nagabhushana 		0x1e3c0, 0x1e3c8,
26156b2bdd1SGireesh Nagabhushana 		0x1e440, 0x1e44c,
26256b2bdd1SGireesh Nagabhushana 		0x1e640, 0x1e68c,
26356b2bdd1SGireesh Nagabhushana 		0x1e6c0, 0x1e6c0,
26456b2bdd1SGireesh Nagabhushana 		0x1e6e0, 0x1e6e0,
26556b2bdd1SGireesh Nagabhushana 		0x1e700, 0x1e784,
26656b2bdd1SGireesh Nagabhushana 		0x1e7c0, 0x1e7c8,
26756b2bdd1SGireesh Nagabhushana 		0x1e840, 0x1e84c,
26856b2bdd1SGireesh Nagabhushana 		0x1ea40, 0x1ea8c,
26956b2bdd1SGireesh Nagabhushana 		0x1eac0, 0x1eac0,
27056b2bdd1SGireesh Nagabhushana 		0x1eae0, 0x1eae0,
27156b2bdd1SGireesh Nagabhushana 		0x1eb00, 0x1eb84,
27256b2bdd1SGireesh Nagabhushana 		0x1ebc0, 0x1ebc8,
27356b2bdd1SGireesh Nagabhushana 		0x1ec40, 0x1ec4c,
27456b2bdd1SGireesh Nagabhushana 		0x1ee40, 0x1ee8c,
27556b2bdd1SGireesh Nagabhushana 		0x1eec0, 0x1eec0,
27656b2bdd1SGireesh Nagabhushana 		0x1eee0, 0x1eee0,
27756b2bdd1SGireesh Nagabhushana 		0x1ef00, 0x1ef84,
27856b2bdd1SGireesh Nagabhushana 		0x1efc0, 0x1efc8,
27956b2bdd1SGireesh Nagabhushana 		0x1f040, 0x1f04c,
28056b2bdd1SGireesh Nagabhushana 		0x1f240, 0x1f28c,
28156b2bdd1SGireesh Nagabhushana 		0x1f2c0, 0x1f2c0,
28256b2bdd1SGireesh Nagabhushana 		0x1f2e0, 0x1f2e0,
28356b2bdd1SGireesh Nagabhushana 		0x1f300, 0x1f384,
28456b2bdd1SGireesh Nagabhushana 		0x1f3c0, 0x1f3c8,
28556b2bdd1SGireesh Nagabhushana 		0x1f440, 0x1f44c,
28656b2bdd1SGireesh Nagabhushana 		0x1f640, 0x1f68c,
28756b2bdd1SGireesh Nagabhushana 		0x1f6c0, 0x1f6c0,
28856b2bdd1SGireesh Nagabhushana 		0x1f6e0, 0x1f6e0,
28956b2bdd1SGireesh Nagabhushana 		0x1f700, 0x1f784,
29056b2bdd1SGireesh Nagabhushana 		0x1f7c0, 0x1f7c8,
29156b2bdd1SGireesh Nagabhushana 		0x1f840, 0x1f84c,
29256b2bdd1SGireesh Nagabhushana 		0x1fa40, 0x1fa8c,
29356b2bdd1SGireesh Nagabhushana 		0x1fac0, 0x1fac0,
29456b2bdd1SGireesh Nagabhushana 		0x1fae0, 0x1fae0,
29556b2bdd1SGireesh Nagabhushana 		0x1fb00, 0x1fb84,
29656b2bdd1SGireesh Nagabhushana 		0x1fbc0, 0x1fbc8,
29756b2bdd1SGireesh Nagabhushana 		0x1fc40, 0x1fc4c,
29856b2bdd1SGireesh Nagabhushana 		0x1fe40, 0x1fe8c,
29956b2bdd1SGireesh Nagabhushana 		0x1fec0, 0x1fec0,
30056b2bdd1SGireesh Nagabhushana 		0x1fee0, 0x1fee0,
30156b2bdd1SGireesh Nagabhushana 		0x1ff00, 0x1ff84,
30256b2bdd1SGireesh Nagabhushana 		0x1ffc0, 0x1ffc8,
30356b2bdd1SGireesh Nagabhushana 		0x20000, 0x2002c,
30456b2bdd1SGireesh Nagabhushana 		0x20100, 0x2013c,
30556b2bdd1SGireesh Nagabhushana 		0x20190, 0x201c8,
30656b2bdd1SGireesh Nagabhushana 		0x20200, 0x20318,
30756b2bdd1SGireesh Nagabhushana 		0x20400, 0x20528,
30856b2bdd1SGireesh Nagabhushana 		0x20540, 0x20614,
30956b2bdd1SGireesh Nagabhushana 		0x21000, 0x21040,
31056b2bdd1SGireesh Nagabhushana 		0x2104c, 0x21060,
31156b2bdd1SGireesh Nagabhushana 		0x210c0, 0x210ec,
31256b2bdd1SGireesh Nagabhushana 		0x21200, 0x21268,
31356b2bdd1SGireesh Nagabhushana 		0x21270, 0x21284,
31456b2bdd1SGireesh Nagabhushana 		0x212fc, 0x21388,
31556b2bdd1SGireesh Nagabhushana 		0x21400, 0x21404,
31656b2bdd1SGireesh Nagabhushana 		0x21500, 0x21518,
31756b2bdd1SGireesh Nagabhushana 		0x2152c, 0x2153c,
31856b2bdd1SGireesh Nagabhushana 		0x21550, 0x21554,
31956b2bdd1SGireesh Nagabhushana 		0x21600, 0x21600,
32056b2bdd1SGireesh Nagabhushana 		0x21608, 0x21628,
32156b2bdd1SGireesh Nagabhushana 		0x21630, 0x2163c,
32256b2bdd1SGireesh Nagabhushana 		0x21700, 0x2171c,
32356b2bdd1SGireesh Nagabhushana 		0x21780, 0x2178c,
32456b2bdd1SGireesh Nagabhushana 		0x21800, 0x21c38,
32556b2bdd1SGireesh Nagabhushana 		0x21c80, 0x21d7c,
32656b2bdd1SGireesh Nagabhushana 		0x21e00, 0x21e04,
32756b2bdd1SGireesh Nagabhushana 		0x22000, 0x2202c,
32856b2bdd1SGireesh Nagabhushana 		0x22100, 0x2213c,
32956b2bdd1SGireesh Nagabhushana 		0x22190, 0x221c8,
33056b2bdd1SGireesh Nagabhushana 		0x22200, 0x22318,
33156b2bdd1SGireesh Nagabhushana 		0x22400, 0x22528,
33256b2bdd1SGireesh Nagabhushana 		0x22540, 0x22614,
33356b2bdd1SGireesh Nagabhushana 		0x23000, 0x23040,
33456b2bdd1SGireesh Nagabhushana 		0x2304c, 0x23060,
33556b2bdd1SGireesh Nagabhushana 		0x230c0, 0x230ec,
33656b2bdd1SGireesh Nagabhushana 		0x23200, 0x23268,
33756b2bdd1SGireesh Nagabhushana 		0x23270, 0x23284,
33856b2bdd1SGireesh Nagabhushana 		0x232fc, 0x23388,
33956b2bdd1SGireesh Nagabhushana 		0x23400, 0x23404,
34056b2bdd1SGireesh Nagabhushana 		0x23500, 0x23518,
34156b2bdd1SGireesh Nagabhushana 		0x2352c, 0x2353c,
34256b2bdd1SGireesh Nagabhushana 		0x23550, 0x23554,
34356b2bdd1SGireesh Nagabhushana 		0x23600, 0x23600,
34456b2bdd1SGireesh Nagabhushana 		0x23608, 0x23628,
34556b2bdd1SGireesh Nagabhushana 		0x23630, 0x2363c,
34656b2bdd1SGireesh Nagabhushana 		0x23700, 0x2371c,
34756b2bdd1SGireesh Nagabhushana 		0x23780, 0x2378c,
34856b2bdd1SGireesh Nagabhushana 		0x23800, 0x23c38,
34956b2bdd1SGireesh Nagabhushana 		0x23c80, 0x23d7c,
35056b2bdd1SGireesh Nagabhushana 		0x23e00, 0x23e04,
35156b2bdd1SGireesh Nagabhushana 		0x24000, 0x2402c,
35256b2bdd1SGireesh Nagabhushana 		0x24100, 0x2413c,
35356b2bdd1SGireesh Nagabhushana 		0x24190, 0x241c8,
35456b2bdd1SGireesh Nagabhushana 		0x24200, 0x24318,
35556b2bdd1SGireesh Nagabhushana 		0x24400, 0x24528,
35656b2bdd1SGireesh Nagabhushana 		0x24540, 0x24614,
35756b2bdd1SGireesh Nagabhushana 		0x25000, 0x25040,
35856b2bdd1SGireesh Nagabhushana 		0x2504c, 0x25060,
35956b2bdd1SGireesh Nagabhushana 		0x250c0, 0x250ec,
36056b2bdd1SGireesh Nagabhushana 		0x25200, 0x25268,
36156b2bdd1SGireesh Nagabhushana 		0x25270, 0x25284,
36256b2bdd1SGireesh Nagabhushana 		0x252fc, 0x25388,
36356b2bdd1SGireesh Nagabhushana 		0x25400, 0x25404,
36456b2bdd1SGireesh Nagabhushana 		0x25500, 0x25518,
36556b2bdd1SGireesh Nagabhushana 		0x2552c, 0x2553c,
36656b2bdd1SGireesh Nagabhushana 		0x25550, 0x25554,
36756b2bdd1SGireesh Nagabhushana 		0x25600, 0x25600,
36856b2bdd1SGireesh Nagabhushana 		0x25608, 0x25628,
36956b2bdd1SGireesh Nagabhushana 		0x25630, 0x2563c,
37056b2bdd1SGireesh Nagabhushana 		0x25700, 0x2571c,
37156b2bdd1SGireesh Nagabhushana 		0x25780, 0x2578c,
37256b2bdd1SGireesh Nagabhushana 		0x25800, 0x25c38,
37356b2bdd1SGireesh Nagabhushana 		0x25c80, 0x25d7c,
37456b2bdd1SGireesh Nagabhushana 		0x25e00, 0x25e04,
37556b2bdd1SGireesh Nagabhushana 		0x26000, 0x2602c,
37656b2bdd1SGireesh Nagabhushana 		0x26100, 0x2613c,
37756b2bdd1SGireesh Nagabhushana 		0x26190, 0x261c8,
37856b2bdd1SGireesh Nagabhushana 		0x26200, 0x26318,
37956b2bdd1SGireesh Nagabhushana 		0x26400, 0x26528,
38056b2bdd1SGireesh Nagabhushana 		0x26540, 0x26614,
38156b2bdd1SGireesh Nagabhushana 		0x27000, 0x27040,
38256b2bdd1SGireesh Nagabhushana 		0x2704c, 0x27060,
38356b2bdd1SGireesh Nagabhushana 		0x270c0, 0x270ec,
38456b2bdd1SGireesh Nagabhushana 		0x27200, 0x27268,
38556b2bdd1SGireesh Nagabhushana 		0x27270, 0x27284,
38656b2bdd1SGireesh Nagabhushana 		0x272fc, 0x27388,
38756b2bdd1SGireesh Nagabhushana 		0x27400, 0x27404,
38856b2bdd1SGireesh Nagabhushana 		0x27500, 0x27518,
38956b2bdd1SGireesh Nagabhushana 		0x2752c, 0x2753c,
39056b2bdd1SGireesh Nagabhushana 		0x27550, 0x27554,
39156b2bdd1SGireesh Nagabhushana 		0x27600, 0x27600,
39256b2bdd1SGireesh Nagabhushana 		0x27608, 0x27628,
39356b2bdd1SGireesh Nagabhushana 		0x27630, 0x2763c,
39456b2bdd1SGireesh Nagabhushana 		0x27700, 0x2771c,
39556b2bdd1SGireesh Nagabhushana 		0x27780, 0x2778c,
39656b2bdd1SGireesh Nagabhushana 		0x27800, 0x27c38,
39756b2bdd1SGireesh Nagabhushana 		0x27c80, 0x27d7c,
398*fcabbd87SPotnuri Bharat Teja 		0x27e00, 0x27e04,
39956b2bdd1SGireesh Nagabhushana 	};
40056b2bdd1SGireesh Nagabhushana 
401de483253SVishal Kulkarni 	static const unsigned int t5_reg_ranges[] = {
402de483253SVishal Kulkarni 		0x1008, 0x10c0,
403de483253SVishal Kulkarni 		0x10cc, 0x10f8,
404de483253SVishal Kulkarni 		0x1100, 0x1100,
405de483253SVishal Kulkarni 		0x110c, 0x1148,
406de483253SVishal Kulkarni 		0x1180, 0x1184,
407de483253SVishal Kulkarni 		0x1190, 0x1194,
408de483253SVishal Kulkarni 		0x11a0, 0x11a4,
409de483253SVishal Kulkarni 		0x11b0, 0x11b4,
410de483253SVishal Kulkarni 		0x11fc, 0x123c,
411de483253SVishal Kulkarni 		0x1280, 0x173c,
412de483253SVishal Kulkarni 		0x1800, 0x18fc,
413de483253SVishal Kulkarni 		0x3000, 0x3028,
414de483253SVishal Kulkarni 		0x3060, 0x30b0,
415de483253SVishal Kulkarni 		0x30b8, 0x30d8,
416de483253SVishal Kulkarni 		0x30e0, 0x30fc,
417de483253SVishal Kulkarni 		0x3140, 0x357c,
418de483253SVishal Kulkarni 		0x35a8, 0x35cc,
419de483253SVishal Kulkarni 		0x35ec, 0x35ec,
420de483253SVishal Kulkarni 		0x3600, 0x5624,
421de483253SVishal Kulkarni 		0x56cc, 0x56ec,
422de483253SVishal Kulkarni 		0x56f4, 0x5720,
423de483253SVishal Kulkarni 		0x5728, 0x575c,
424de483253SVishal Kulkarni 		0x580c, 0x5814,
425de483253SVishal Kulkarni 		0x5890, 0x589c,
426de483253SVishal Kulkarni 		0x58a4, 0x58ac,
427de483253SVishal Kulkarni 		0x58b8, 0x58bc,
428de483253SVishal Kulkarni 		0x5940, 0x59c8,
429de483253SVishal Kulkarni 		0x59d0, 0x59dc,
430de483253SVishal Kulkarni 		0x59fc, 0x5a18,
431de483253SVishal Kulkarni 		0x5a60, 0x5a70,
432de483253SVishal Kulkarni 		0x5a80, 0x5a9c,
433de483253SVishal Kulkarni 		0x5b94, 0x5bfc,
434de483253SVishal Kulkarni 		0x6000, 0x6020,
435de483253SVishal Kulkarni 		0x6028, 0x6040,
436de483253SVishal Kulkarni 		0x6058, 0x609c,
437de483253SVishal Kulkarni 		0x60a8, 0x614c,
438de483253SVishal Kulkarni 		0x7700, 0x7798,
439de483253SVishal Kulkarni 		0x77c0, 0x78fc,
440de483253SVishal Kulkarni 		0x7b00, 0x7b58,
441de483253SVishal Kulkarni 		0x7b60, 0x7b84,
442de483253SVishal Kulkarni 		0x7b8c, 0x7c54,
443de483253SVishal Kulkarni 		0x7d00, 0x7d38,
444de483253SVishal Kulkarni 		0x7d40, 0x7d80,
445de483253SVishal Kulkarni 		0x7d8c, 0x7ddc,
446de483253SVishal Kulkarni 		0x7de4, 0x7e04,
447de483253SVishal Kulkarni 		0x7e10, 0x7e1c,
448de483253SVishal Kulkarni 		0x7e24, 0x7e38,
449de483253SVishal Kulkarni 		0x7e40, 0x7e44,
450de483253SVishal Kulkarni 		0x7e4c, 0x7e78,
451de483253SVishal Kulkarni 		0x7e80, 0x7edc,
452de483253SVishal Kulkarni 		0x7ee8, 0x7efc,
453de483253SVishal Kulkarni 		0x8dc0, 0x8de0,
454de483253SVishal Kulkarni 		0x8df8, 0x8e04,
455de483253SVishal Kulkarni 		0x8e10, 0x8e84,
456de483253SVishal Kulkarni 		0x8ea0, 0x8f84,
457de483253SVishal Kulkarni 		0x8fc0, 0x9058,
458de483253SVishal Kulkarni 		0x9060, 0x9060,
459de483253SVishal Kulkarni 		0x9068, 0x90f8,
460de483253SVishal Kulkarni 		0x9400, 0x9408,
461de483253SVishal Kulkarni 		0x9410, 0x9470,
462de483253SVishal Kulkarni 		0x9600, 0x9600,
463de483253SVishal Kulkarni 		0x9608, 0x9638,
464de483253SVishal Kulkarni 		0x9640, 0x96f4,
465de483253SVishal Kulkarni 		0x9800, 0x9808,
466de483253SVishal Kulkarni 		0x9820, 0x983c,
467de483253SVishal Kulkarni 		0x9850, 0x9864,
468de483253SVishal Kulkarni 		0x9c00, 0x9c6c,
469de483253SVishal Kulkarni 		0x9c80, 0x9cec,
470de483253SVishal Kulkarni 		0x9d00, 0x9d6c,
471de483253SVishal Kulkarni 		0x9d80, 0x9dec,
472de483253SVishal Kulkarni 		0x9e00, 0x9e6c,
473de483253SVishal Kulkarni 		0x9e80, 0x9eec,
474de483253SVishal Kulkarni 		0x9f00, 0x9f6c,
475de483253SVishal Kulkarni 		0x9f80, 0xa020,
476de483253SVishal Kulkarni 		0xd004, 0xd004,
477de483253SVishal Kulkarni 		0xd010, 0xd03c,
478de483253SVishal Kulkarni 		0xdfc0, 0xdfe0,
479de483253SVishal Kulkarni 		0xe000, 0x1106c,
480de483253SVishal Kulkarni 		0x11074, 0x11088,
481de483253SVishal Kulkarni 		0x1109c, 0x1117c,
482de483253SVishal Kulkarni 		0x11190, 0x11204,
483de483253SVishal Kulkarni 		0x19040, 0x1906c,
484de483253SVishal Kulkarni 		0x19078, 0x19080,
485de483253SVishal Kulkarni 		0x1908c, 0x190e8,
486de483253SVishal Kulkarni 		0x190f0, 0x190f8,
487de483253SVishal Kulkarni 		0x19100, 0x19110,
488de483253SVishal Kulkarni 		0x19120, 0x19124,
489de483253SVishal Kulkarni 		0x19150, 0x19194,
490de483253SVishal Kulkarni 		0x1919c, 0x191b0,
491de483253SVishal Kulkarni 		0x191d0, 0x191e8,
492de483253SVishal Kulkarni 		0x19238, 0x19290,
493de483253SVishal Kulkarni 		0x193f8, 0x19428,
494de483253SVishal Kulkarni 		0x19430, 0x19444,
495de483253SVishal Kulkarni 		0x1944c, 0x1946c,
496de483253SVishal Kulkarni 		0x19474, 0x19474,
497de483253SVishal Kulkarni 		0x19490, 0x194cc,
498de483253SVishal Kulkarni 		0x194f0, 0x194f8,
499de483253SVishal Kulkarni 		0x19c00, 0x19c08,
500de483253SVishal Kulkarni 		0x19c10, 0x19c60,
501de483253SVishal Kulkarni 		0x19c94, 0x19ce4,
502de483253SVishal Kulkarni 		0x19cf0, 0x19d40,
503de483253SVishal Kulkarni 		0x19d50, 0x19d94,
504de483253SVishal Kulkarni 		0x19da0, 0x19de8,
505de483253SVishal Kulkarni 		0x19df0, 0x19e10,
506de483253SVishal Kulkarni 		0x19e50, 0x19e90,
507de483253SVishal Kulkarni 		0x19ea0, 0x19f24,
508de483253SVishal Kulkarni 		0x19f34, 0x19f34,
509de483253SVishal Kulkarni 		0x19f40, 0x19f50,
510de483253SVishal Kulkarni 		0x19f90, 0x19fb4,
511de483253SVishal Kulkarni 		0x19fc4, 0x19fe4,
512de483253SVishal Kulkarni 		0x1a000, 0x1a004,
513de483253SVishal Kulkarni 		0x1a010, 0x1a06c,
514de483253SVishal Kulkarni 		0x1a0b0, 0x1a0e4,
515de483253SVishal Kulkarni 		0x1a0ec, 0x1a0f8,
516de483253SVishal Kulkarni 		0x1a100, 0x1a108,
517de483253SVishal Kulkarni 		0x1a114, 0x1a120,
518de483253SVishal Kulkarni 		0x1a128, 0x1a130,
519de483253SVishal Kulkarni 		0x1a138, 0x1a138,
520de483253SVishal Kulkarni 		0x1a190, 0x1a1c4,
521de483253SVishal Kulkarni 		0x1a1fc, 0x1a1fc,
522de483253SVishal Kulkarni 		0x1e008, 0x1e00c,
523de483253SVishal Kulkarni 		0x1e040, 0x1e044,
524de483253SVishal Kulkarni 		0x1e04c, 0x1e04c,
525de483253SVishal Kulkarni 		0x1e284, 0x1e290,
526de483253SVishal Kulkarni 		0x1e2c0, 0x1e2c0,
527de483253SVishal Kulkarni 		0x1e2e0, 0x1e2e0,
528de483253SVishal Kulkarni 		0x1e300, 0x1e384,
529de483253SVishal Kulkarni 		0x1e3c0, 0x1e3c8,
530de483253SVishal Kulkarni 		0x1e408, 0x1e40c,
531de483253SVishal Kulkarni 		0x1e440, 0x1e444,
532de483253SVishal Kulkarni 		0x1e44c, 0x1e44c,
533de483253SVishal Kulkarni 		0x1e684, 0x1e690,
534de483253SVishal Kulkarni 		0x1e6c0, 0x1e6c0,
535de483253SVishal Kulkarni 		0x1e6e0, 0x1e6e0,
536de483253SVishal Kulkarni 		0x1e700, 0x1e784,
537de483253SVishal Kulkarni 		0x1e7c0, 0x1e7c8,
538de483253SVishal Kulkarni 		0x1e808, 0x1e80c,
539de483253SVishal Kulkarni 		0x1e840, 0x1e844,
540de483253SVishal Kulkarni 		0x1e84c, 0x1e84c,
541de483253SVishal Kulkarni 		0x1ea84, 0x1ea90,
542de483253SVishal Kulkarni 		0x1eac0, 0x1eac0,
543de483253SVishal Kulkarni 		0x1eae0, 0x1eae0,
544de483253SVishal Kulkarni 		0x1eb00, 0x1eb84,
545de483253SVishal Kulkarni 		0x1ebc0, 0x1ebc8,
546de483253SVishal Kulkarni 		0x1ec08, 0x1ec0c,
547de483253SVishal Kulkarni 		0x1ec40, 0x1ec44,
548de483253SVishal Kulkarni 		0x1ec4c, 0x1ec4c,
549de483253SVishal Kulkarni 		0x1ee84, 0x1ee90,
550de483253SVishal Kulkarni 		0x1eec0, 0x1eec0,
551de483253SVishal Kulkarni 		0x1eee0, 0x1eee0,
552de483253SVishal Kulkarni 		0x1ef00, 0x1ef84,
553de483253SVishal Kulkarni 		0x1efc0, 0x1efc8,
554de483253SVishal Kulkarni 		0x1f008, 0x1f00c,
555de483253SVishal Kulkarni 		0x1f040, 0x1f044,
556de483253SVishal Kulkarni 		0x1f04c, 0x1f04c,
557de483253SVishal Kulkarni 		0x1f284, 0x1f290,
558de483253SVishal Kulkarni 		0x1f2c0, 0x1f2c0,
559de483253SVishal Kulkarni 		0x1f2e0, 0x1f2e0,
560de483253SVishal Kulkarni 		0x1f300, 0x1f384,
561de483253SVishal Kulkarni 		0x1f3c0, 0x1f3c8,
562de483253SVishal Kulkarni 		0x1f408, 0x1f40c,
563de483253SVishal Kulkarni 		0x1f440, 0x1f444,
564de483253SVishal Kulkarni 		0x1f44c, 0x1f44c,
565de483253SVishal Kulkarni 		0x1f684, 0x1f690,
566de483253SVishal Kulkarni 		0x1f6c0, 0x1f6c0,
567de483253SVishal Kulkarni 		0x1f6e0, 0x1f6e0,
568de483253SVishal Kulkarni 		0x1f700, 0x1f784,
569de483253SVishal Kulkarni 		0x1f7c0, 0x1f7c8,
570de483253SVishal Kulkarni 		0x1f808, 0x1f80c,
571de483253SVishal Kulkarni 		0x1f840, 0x1f844,
572de483253SVishal Kulkarni 		0x1f84c, 0x1f84c,
573de483253SVishal Kulkarni 		0x1fa84, 0x1fa90,
574de483253SVishal Kulkarni 		0x1fac0, 0x1fac0,
575de483253SVishal Kulkarni 		0x1fae0, 0x1fae0,
576de483253SVishal Kulkarni 		0x1fb00, 0x1fb84,
577de483253SVishal Kulkarni 		0x1fbc0, 0x1fbc8,
578de483253SVishal Kulkarni 		0x1fc08, 0x1fc0c,
579de483253SVishal Kulkarni 		0x1fc40, 0x1fc44,
580de483253SVishal Kulkarni 		0x1fc4c, 0x1fc4c,
581de483253SVishal Kulkarni 		0x1fe84, 0x1fe90,
582de483253SVishal Kulkarni 		0x1fec0, 0x1fec0,
583de483253SVishal Kulkarni 		0x1fee0, 0x1fee0,
584de483253SVishal Kulkarni 		0x1ff00, 0x1ff84,
585de483253SVishal Kulkarni 		0x1ffc0, 0x1ffc8,
586de483253SVishal Kulkarni 		0x30000, 0x30030,
587de483253SVishal Kulkarni 		0x30038, 0x30038,
588de483253SVishal Kulkarni 		0x30040, 0x30040,
589de483253SVishal Kulkarni 		0x30100, 0x30144,
590de483253SVishal Kulkarni 		0x30190, 0x301a0,
591de483253SVishal Kulkarni 		0x301a8, 0x301b8,
592de483253SVishal Kulkarni 		0x301c4, 0x301c8,
593de483253SVishal Kulkarni 		0x301d0, 0x301d0,
594de483253SVishal Kulkarni 		0x30200, 0x30318,
595de483253SVishal Kulkarni 		0x30400, 0x304b4,
596de483253SVishal Kulkarni 		0x304c0, 0x3052c,
597de483253SVishal Kulkarni 		0x30540, 0x3061c,
598de483253SVishal Kulkarni 		0x30800, 0x30828,
599de483253SVishal Kulkarni 		0x30834, 0x30834,
600de483253SVishal Kulkarni 		0x308c0, 0x30908,
601de483253SVishal Kulkarni 		0x30910, 0x309ac,
602de483253SVishal Kulkarni 		0x30a00, 0x30a14,
603de483253SVishal Kulkarni 		0x30a1c, 0x30a2c,
604de483253SVishal Kulkarni 		0x30a44, 0x30a50,
605de483253SVishal Kulkarni 		0x30a74, 0x30a74,
606de483253SVishal Kulkarni 		0x30a7c, 0x30afc,
607de483253SVishal Kulkarni 		0x30b08, 0x30c24,
608de483253SVishal Kulkarni 		0x30d00, 0x30d00,
609de483253SVishal Kulkarni 		0x30d08, 0x30d14,
610de483253SVishal Kulkarni 		0x30d1c, 0x30d20,
611de483253SVishal Kulkarni 		0x30d3c, 0x30d3c,
612de483253SVishal Kulkarni 		0x30d48, 0x30d50,
613de483253SVishal Kulkarni 		0x31200, 0x3120c,
614de483253SVishal Kulkarni 		0x31220, 0x31220,
615de483253SVishal Kulkarni 		0x31240, 0x31240,
616de483253SVishal Kulkarni 		0x31600, 0x3160c,
617de483253SVishal Kulkarni 		0x31a00, 0x31a1c,
618de483253SVishal Kulkarni 		0x31e00, 0x31e20,
619de483253SVishal Kulkarni 		0x31e38, 0x31e3c,
620de483253SVishal Kulkarni 		0x31e80, 0x31e80,
621de483253SVishal Kulkarni 		0x31e88, 0x31ea8,
622de483253SVishal Kulkarni 		0x31eb0, 0x31eb4,
623de483253SVishal Kulkarni 		0x31ec8, 0x31ed4,
624de483253SVishal Kulkarni 		0x31fb8, 0x32004,
625de483253SVishal Kulkarni 		0x32200, 0x32200,
626de483253SVishal Kulkarni 		0x32208, 0x32240,
627de483253SVishal Kulkarni 		0x32248, 0x32280,
628de483253SVishal Kulkarni 		0x32288, 0x322c0,
629de483253SVishal Kulkarni 		0x322c8, 0x322fc,
630de483253SVishal Kulkarni 		0x32600, 0x32630,
631de483253SVishal Kulkarni 		0x32a00, 0x32abc,
632de483253SVishal Kulkarni 		0x32b00, 0x32b10,
633de483253SVishal Kulkarni 		0x32b20, 0x32b30,
634de483253SVishal Kulkarni 		0x32b40, 0x32b50,
635de483253SVishal Kulkarni 		0x32b60, 0x32b70,
636de483253SVishal Kulkarni 		0x33000, 0x33028,
637de483253SVishal Kulkarni 		0x33030, 0x33048,
638de483253SVishal Kulkarni 		0x33060, 0x33068,
639de483253SVishal Kulkarni 		0x33070, 0x3309c,
640de483253SVishal Kulkarni 		0x330f0, 0x33128,
641de483253SVishal Kulkarni 		0x33130, 0x33148,
642de483253SVishal Kulkarni 		0x33160, 0x33168,
643de483253SVishal Kulkarni 		0x33170, 0x3319c,
644de483253SVishal Kulkarni 		0x331f0, 0x33238,
645de483253SVishal Kulkarni 		0x33240, 0x33240,
646de483253SVishal Kulkarni 		0x33248, 0x33250,
647de483253SVishal Kulkarni 		0x3325c, 0x33264,
648de483253SVishal Kulkarni 		0x33270, 0x332b8,
649de483253SVishal Kulkarni 		0x332c0, 0x332e4,
650de483253SVishal Kulkarni 		0x332f8, 0x33338,
651de483253SVishal Kulkarni 		0x33340, 0x33340,
652de483253SVishal Kulkarni 		0x33348, 0x33350,
653de483253SVishal Kulkarni 		0x3335c, 0x33364,
654de483253SVishal Kulkarni 		0x33370, 0x333b8,
655de483253SVishal Kulkarni 		0x333c0, 0x333e4,
656de483253SVishal Kulkarni 		0x333f8, 0x33428,
657de483253SVishal Kulkarni 		0x33430, 0x33448,
658de483253SVishal Kulkarni 		0x33460, 0x33468,
659de483253SVishal Kulkarni 		0x33470, 0x3349c,
660de483253SVishal Kulkarni 		0x334f0, 0x33528,
661de483253SVishal Kulkarni 		0x33530, 0x33548,
662de483253SVishal Kulkarni 		0x33560, 0x33568,
663de483253SVishal Kulkarni 		0x33570, 0x3359c,
664de483253SVishal Kulkarni 		0x335f0, 0x33638,
665de483253SVishal Kulkarni 		0x33640, 0x33640,
666de483253SVishal Kulkarni 		0x33648, 0x33650,
667de483253SVishal Kulkarni 		0x3365c, 0x33664,
668de483253SVishal Kulkarni 		0x33670, 0x336b8,
669de483253SVishal Kulkarni 		0x336c0, 0x336e4,
670de483253SVishal Kulkarni 		0x336f8, 0x33738,
671de483253SVishal Kulkarni 		0x33740, 0x33740,
672de483253SVishal Kulkarni 		0x33748, 0x33750,
673de483253SVishal Kulkarni 		0x3375c, 0x33764,
674de483253SVishal Kulkarni 		0x33770, 0x337b8,
675de483253SVishal Kulkarni 		0x337c0, 0x337e4,
676de483253SVishal Kulkarni 		0x337f8, 0x337fc,
677de483253SVishal Kulkarni 		0x33814, 0x33814,
678de483253SVishal Kulkarni 		0x3382c, 0x3382c,
679de483253SVishal Kulkarni 		0x33880, 0x3388c,
680de483253SVishal Kulkarni 		0x338e8, 0x338ec,
681de483253SVishal Kulkarni 		0x33900, 0x33928,
682de483253SVishal Kulkarni 		0x33930, 0x33948,
683de483253SVishal Kulkarni 		0x33960, 0x33968,
684de483253SVishal Kulkarni 		0x33970, 0x3399c,
685de483253SVishal Kulkarni 		0x339f0, 0x33a38,
686de483253SVishal Kulkarni 		0x33a40, 0x33a40,
687de483253SVishal Kulkarni 		0x33a48, 0x33a50,
688de483253SVishal Kulkarni 		0x33a5c, 0x33a64,
689de483253SVishal Kulkarni 		0x33a70, 0x33ab8,
690de483253SVishal Kulkarni 		0x33ac0, 0x33ae4,
691de483253SVishal Kulkarni 		0x33af8, 0x33b10,
692de483253SVishal Kulkarni 		0x33b28, 0x33b28,
693de483253SVishal Kulkarni 		0x33b3c, 0x33b50,
694de483253SVishal Kulkarni 		0x33bf0, 0x33c10,
695de483253SVishal Kulkarni 		0x33c28, 0x33c28,
696de483253SVishal Kulkarni 		0x33c3c, 0x33c50,
697de483253SVishal Kulkarni 		0x33cf0, 0x33cfc,
698de483253SVishal Kulkarni 		0x34000, 0x34030,
699de483253SVishal Kulkarni 		0x34038, 0x34038,
700de483253SVishal Kulkarni 		0x34040, 0x34040,
701de483253SVishal Kulkarni 		0x34100, 0x34144,
702de483253SVishal Kulkarni 		0x34190, 0x341a0,
703de483253SVishal Kulkarni 		0x341a8, 0x341b8,
704de483253SVishal Kulkarni 		0x341c4, 0x341c8,
705de483253SVishal Kulkarni 		0x341d0, 0x341d0,
706de483253SVishal Kulkarni 		0x34200, 0x34318,
707de483253SVishal Kulkarni 		0x34400, 0x344b4,
708de483253SVishal Kulkarni 		0x344c0, 0x3452c,
709de483253SVishal Kulkarni 		0x34540, 0x3461c,
710de483253SVishal Kulkarni 		0x34800, 0x34828,
711de483253SVishal Kulkarni 		0x34834, 0x34834,
712de483253SVishal Kulkarni 		0x348c0, 0x34908,
713de483253SVishal Kulkarni 		0x34910, 0x349ac,
714de483253SVishal Kulkarni 		0x34a00, 0x34a14,
715de483253SVishal Kulkarni 		0x34a1c, 0x34a2c,
716de483253SVishal Kulkarni 		0x34a44, 0x34a50,
717de483253SVishal Kulkarni 		0x34a74, 0x34a74,
718de483253SVishal Kulkarni 		0x34a7c, 0x34afc,
719de483253SVishal Kulkarni 		0x34b08, 0x34c24,
720de483253SVishal Kulkarni 		0x34d00, 0x34d00,
721de483253SVishal Kulkarni 		0x34d08, 0x34d14,
722de483253SVishal Kulkarni 		0x34d1c, 0x34d20,
723de483253SVishal Kulkarni 		0x34d3c, 0x34d3c,
724de483253SVishal Kulkarni 		0x34d48, 0x34d50,
725de483253SVishal Kulkarni 		0x35200, 0x3520c,
726de483253SVishal Kulkarni 		0x35220, 0x35220,
727de483253SVishal Kulkarni 		0x35240, 0x35240,
728de483253SVishal Kulkarni 		0x35600, 0x3560c,
729de483253SVishal Kulkarni 		0x35a00, 0x35a1c,
730de483253SVishal Kulkarni 		0x35e00, 0x35e20,
731de483253SVishal Kulkarni 		0x35e38, 0x35e3c,
732de483253SVishal Kulkarni 		0x35e80, 0x35e80,
733de483253SVishal Kulkarni 		0x35e88, 0x35ea8,
734de483253SVishal Kulkarni 		0x35eb0, 0x35eb4,
735de483253SVishal Kulkarni 		0x35ec8, 0x35ed4,
736de483253SVishal Kulkarni 		0x35fb8, 0x36004,
737de483253SVishal Kulkarni 		0x36200, 0x36200,
738de483253SVishal Kulkarni 		0x36208, 0x36240,
739de483253SVishal Kulkarni 		0x36248, 0x36280,
740de483253SVishal Kulkarni 		0x36288, 0x362c0,
741de483253SVishal Kulkarni 		0x362c8, 0x362fc,
742de483253SVishal Kulkarni 		0x36600, 0x36630,
743de483253SVishal Kulkarni 		0x36a00, 0x36abc,
744de483253SVishal Kulkarni 		0x36b00, 0x36b10,
745de483253SVishal Kulkarni 		0x36b20, 0x36b30,
746de483253SVishal Kulkarni 		0x36b40, 0x36b50,
747de483253SVishal Kulkarni 		0x36b60, 0x36b70,
748de483253SVishal Kulkarni 		0x37000, 0x37028,
749de483253SVishal Kulkarni 		0x37030, 0x37048,
750de483253SVishal Kulkarni 		0x37060, 0x37068,
751de483253SVishal Kulkarni 		0x37070, 0x3709c,
752de483253SVishal Kulkarni 		0x370f0, 0x37128,
753de483253SVishal Kulkarni 		0x37130, 0x37148,
754de483253SVishal Kulkarni 		0x37160, 0x37168,
755de483253SVishal Kulkarni 		0x37170, 0x3719c,
756de483253SVishal Kulkarni 		0x371f0, 0x37238,
757de483253SVishal Kulkarni 		0x37240, 0x37240,
758de483253SVishal Kulkarni 		0x37248, 0x37250,
759de483253SVishal Kulkarni 		0x3725c, 0x37264,
760de483253SVishal Kulkarni 		0x37270, 0x372b8,
761de483253SVishal Kulkarni 		0x372c0, 0x372e4,
762de483253SVishal Kulkarni 		0x372f8, 0x37338,
763de483253SVishal Kulkarni 		0x37340, 0x37340,
764de483253SVishal Kulkarni 		0x37348, 0x37350,
765de483253SVishal Kulkarni 		0x3735c, 0x37364,
766de483253SVishal Kulkarni 		0x37370, 0x373b8,
767de483253SVishal Kulkarni 		0x373c0, 0x373e4,
768de483253SVishal Kulkarni 		0x373f8, 0x37428,
769de483253SVishal Kulkarni 		0x37430, 0x37448,
770de483253SVishal Kulkarni 		0x37460, 0x37468,
771de483253SVishal Kulkarni 		0x37470, 0x3749c,
772de483253SVishal Kulkarni 		0x374f0, 0x37528,
773de483253SVishal Kulkarni 		0x37530, 0x37548,
774de483253SVishal Kulkarni 		0x37560, 0x37568,
775de483253SVishal Kulkarni 		0x37570, 0x3759c,
776de483253SVishal Kulkarni 		0x375f0, 0x37638,
777de483253SVishal Kulkarni 		0x37640, 0x37640,
778de483253SVishal Kulkarni 		0x37648, 0x37650,
779de483253SVishal Kulkarni 		0x3765c, 0x37664,
780de483253SVishal Kulkarni 		0x37670, 0x376b8,
781de483253SVishal Kulkarni 		0x376c0, 0x376e4,
782de483253SVishal Kulkarni 		0x376f8, 0x37738,
783de483253SVishal Kulkarni 		0x37740, 0x37740,
784de483253SVishal Kulkarni 		0x37748, 0x37750,
785de483253SVishal Kulkarni 		0x3775c, 0x37764,
786de483253SVishal Kulkarni 		0x37770, 0x377b8,
787de483253SVishal Kulkarni 		0x377c0, 0x377e4,
788de483253SVishal Kulkarni 		0x377f8, 0x377fc,
789de483253SVishal Kulkarni 		0x37814, 0x37814,
790de483253SVishal Kulkarni 		0x3782c, 0x3782c,
791de483253SVishal Kulkarni 		0x37880, 0x3788c,
792de483253SVishal Kulkarni 		0x378e8, 0x378ec,
793de483253SVishal Kulkarni 		0x37900, 0x37928,
794de483253SVishal Kulkarni 		0x37930, 0x37948,
795de483253SVishal Kulkarni 		0x37960, 0x37968,
796de483253SVishal Kulkarni 		0x37970, 0x3799c,
797de483253SVishal Kulkarni 		0x379f0, 0x37a38,
798de483253SVishal Kulkarni 		0x37a40, 0x37a40,
799de483253SVishal Kulkarni 		0x37a48, 0x37a50,
800de483253SVishal Kulkarni 		0x37a5c, 0x37a64,
801de483253SVishal Kulkarni 		0x37a70, 0x37ab8,
802de483253SVishal Kulkarni 		0x37ac0, 0x37ae4,
803de483253SVishal Kulkarni 		0x37af8, 0x37b10,
804de483253SVishal Kulkarni 		0x37b28, 0x37b28,
805de483253SVishal Kulkarni 		0x37b3c, 0x37b50,
806de483253SVishal Kulkarni 		0x37bf0, 0x37c10,
807de483253SVishal Kulkarni 		0x37c28, 0x37c28,
808de483253SVishal Kulkarni 		0x37c3c, 0x37c50,
809de483253SVishal Kulkarni 		0x37cf0, 0x37cfc,
810de483253SVishal Kulkarni 		0x38000, 0x38030,
811de483253SVishal Kulkarni 		0x38038, 0x38038,
812de483253SVishal Kulkarni 		0x38040, 0x38040,
813de483253SVishal Kulkarni 		0x38100, 0x38144,
814de483253SVishal Kulkarni 		0x38190, 0x381a0,
815de483253SVishal Kulkarni 		0x381a8, 0x381b8,
816de483253SVishal Kulkarni 		0x381c4, 0x381c8,
817de483253SVishal Kulkarni 		0x381d0, 0x381d0,
818de483253SVishal Kulkarni 		0x38200, 0x38318,
819de483253SVishal Kulkarni 		0x38400, 0x384b4,
820de483253SVishal Kulkarni 		0x384c0, 0x3852c,
821de483253SVishal Kulkarni 		0x38540, 0x3861c,
822de483253SVishal Kulkarni 		0x38800, 0x38828,
823de483253SVishal Kulkarni 		0x38834, 0x38834,
824de483253SVishal Kulkarni 		0x388c0, 0x38908,
825de483253SVishal Kulkarni 		0x38910, 0x389ac,
826de483253SVishal Kulkarni 		0x38a00, 0x38a14,
827de483253SVishal Kulkarni 		0x38a1c, 0x38a2c,
828de483253SVishal Kulkarni 		0x38a44, 0x38a50,
829de483253SVishal Kulkarni 		0x38a74, 0x38a74,
830de483253SVishal Kulkarni 		0x38a7c, 0x38afc,
831de483253SVishal Kulkarni 		0x38b08, 0x38c24,
832de483253SVishal Kulkarni 		0x38d00, 0x38d00,
833de483253SVishal Kulkarni 		0x38d08, 0x38d14,
834de483253SVishal Kulkarni 		0x38d1c, 0x38d20,
835de483253SVishal Kulkarni 		0x38d3c, 0x38d3c,
836de483253SVishal Kulkarni 		0x38d48, 0x38d50,
837de483253SVishal Kulkarni 		0x39200, 0x3920c,
838de483253SVishal Kulkarni 		0x39220, 0x39220,
839de483253SVishal Kulkarni 		0x39240, 0x39240,
840de483253SVishal Kulkarni 		0x39600, 0x3960c,
841de483253SVishal Kulkarni 		0x39a00, 0x39a1c,
842de483253SVishal Kulkarni 		0x39e00, 0x39e20,
843de483253SVishal Kulkarni 		0x39e38, 0x39e3c,
844de483253SVishal Kulkarni 		0x39e80, 0x39e80,
845de483253SVishal Kulkarni 		0x39e88, 0x39ea8,
846de483253SVishal Kulkarni 		0x39eb0, 0x39eb4,
847de483253SVishal Kulkarni 		0x39ec8, 0x39ed4,
848de483253SVishal Kulkarni 		0x39fb8, 0x3a004,
849de483253SVishal Kulkarni 		0x3a200, 0x3a200,
850de483253SVishal Kulkarni 		0x3a208, 0x3a240,
851de483253SVishal Kulkarni 		0x3a248, 0x3a280,
852de483253SVishal Kulkarni 		0x3a288, 0x3a2c0,
853de483253SVishal Kulkarni 		0x3a2c8, 0x3a2fc,
854de483253SVishal Kulkarni 		0x3a600, 0x3a630,
855de483253SVishal Kulkarni 		0x3aa00, 0x3aabc,
856de483253SVishal Kulkarni 		0x3ab00, 0x3ab10,
857de483253SVishal Kulkarni 		0x3ab20, 0x3ab30,
858de483253SVishal Kulkarni 		0x3ab40, 0x3ab50,
859de483253SVishal Kulkarni 		0x3ab60, 0x3ab70,
860de483253SVishal Kulkarni 		0x3b000, 0x3b028,
861de483253SVishal Kulkarni 		0x3b030, 0x3b048,
862de483253SVishal Kulkarni 		0x3b060, 0x3b068,
863de483253SVishal Kulkarni 		0x3b070, 0x3b09c,
864de483253SVishal Kulkarni 		0x3b0f0, 0x3b128,
865de483253SVishal Kulkarni 		0x3b130, 0x3b148,
866de483253SVishal Kulkarni 		0x3b160, 0x3b168,
867de483253SVishal Kulkarni 		0x3b170, 0x3b19c,
868de483253SVishal Kulkarni 		0x3b1f0, 0x3b238,
869de483253SVishal Kulkarni 		0x3b240, 0x3b240,
870de483253SVishal Kulkarni 		0x3b248, 0x3b250,
871de483253SVishal Kulkarni 		0x3b25c, 0x3b264,
872de483253SVishal Kulkarni 		0x3b270, 0x3b2b8,
873de483253SVishal Kulkarni 		0x3b2c0, 0x3b2e4,
874de483253SVishal Kulkarni 		0x3b2f8, 0x3b338,
875de483253SVishal Kulkarni 		0x3b340, 0x3b340,
876de483253SVishal Kulkarni 		0x3b348, 0x3b350,
877de483253SVishal Kulkarni 		0x3b35c, 0x3b364,
878de483253SVishal Kulkarni 		0x3b370, 0x3b3b8,
879de483253SVishal Kulkarni 		0x3b3c0, 0x3b3e4,
880de483253SVishal Kulkarni 		0x3b3f8, 0x3b428,
881de483253SVishal Kulkarni 		0x3b430, 0x3b448,
882de483253SVishal Kulkarni 		0x3b460, 0x3b468,
883de483253SVishal Kulkarni 		0x3b470, 0x3b49c,
884de483253SVishal Kulkarni 		0x3b4f0, 0x3b528,
885de483253SVishal Kulkarni 		0x3b530, 0x3b548,
886de483253SVishal Kulkarni 		0x3b560, 0x3b568,
887de483253SVishal Kulkarni 		0x3b570, 0x3b59c,
888de483253SVishal Kulkarni 		0x3b5f0, 0x3b638,
889de483253SVishal Kulkarni 		0x3b640, 0x3b640,
890de483253SVishal Kulkarni 		0x3b648, 0x3b650,
891de483253SVishal Kulkarni 		0x3b65c, 0x3b664,
892de483253SVishal Kulkarni 		0x3b670, 0x3b6b8,
893de483253SVishal Kulkarni 		0x3b6c0, 0x3b6e4,
894de483253SVishal Kulkarni 		0x3b6f8, 0x3b738,
895de483253SVishal Kulkarni 		0x3b740, 0x3b740,
896de483253SVishal Kulkarni 		0x3b748, 0x3b750,
897de483253SVishal Kulkarni 		0x3b75c, 0x3b764,
898de483253SVishal Kulkarni 		0x3b770, 0x3b7b8,
899de483253SVishal Kulkarni 		0x3b7c0, 0x3b7e4,
900de483253SVishal Kulkarni 		0x3b7f8, 0x3b7fc,
901de483253SVishal Kulkarni 		0x3b814, 0x3b814,
902de483253SVishal Kulkarni 		0x3b82c, 0x3b82c,
903de483253SVishal Kulkarni 		0x3b880, 0x3b88c,
904de483253SVishal Kulkarni 		0x3b8e8, 0x3b8ec,
905de483253SVishal Kulkarni 		0x3b900, 0x3b928,
906de483253SVishal Kulkarni 		0x3b930, 0x3b948,
907de483253SVishal Kulkarni 		0x3b960, 0x3b968,
908de483253SVishal Kulkarni 		0x3b970, 0x3b99c,
909de483253SVishal Kulkarni 		0x3b9f0, 0x3ba38,
910de483253SVishal Kulkarni 		0x3ba40, 0x3ba40,
911de483253SVishal Kulkarni 		0x3ba48, 0x3ba50,
912de483253SVishal Kulkarni 		0x3ba5c, 0x3ba64,
913de483253SVishal Kulkarni 		0x3ba70, 0x3bab8,
914de483253SVishal Kulkarni 		0x3bac0, 0x3bae4,
915de483253SVishal Kulkarni 		0x3baf8, 0x3bb10,
916de483253SVishal Kulkarni 		0x3bb28, 0x3bb28,
917de483253SVishal Kulkarni 		0x3bb3c, 0x3bb50,
918de483253SVishal Kulkarni 		0x3bbf0, 0x3bc10,
919de483253SVishal Kulkarni 		0x3bc28, 0x3bc28,
920de483253SVishal Kulkarni 		0x3bc3c, 0x3bc50,
921de483253SVishal Kulkarni 		0x3bcf0, 0x3bcfc,
922de483253SVishal Kulkarni 		0x3c000, 0x3c030,
923de483253SVishal Kulkarni 		0x3c038, 0x3c038,
924de483253SVishal Kulkarni 		0x3c040, 0x3c040,
925de483253SVishal Kulkarni 		0x3c100, 0x3c144,
926de483253SVishal Kulkarni 		0x3c190, 0x3c1a0,
927de483253SVishal Kulkarni 		0x3c1a8, 0x3c1b8,
928de483253SVishal Kulkarni 		0x3c1c4, 0x3c1c8,
929de483253SVishal Kulkarni 		0x3c1d0, 0x3c1d0,
930de483253SVishal Kulkarni 		0x3c200, 0x3c318,
931de483253SVishal Kulkarni 		0x3c400, 0x3c4b4,
932de483253SVishal Kulkarni 		0x3c4c0, 0x3c52c,
933de483253SVishal Kulkarni 		0x3c540, 0x3c61c,
934de483253SVishal Kulkarni 		0x3c800, 0x3c828,
935de483253SVishal Kulkarni 		0x3c834, 0x3c834,
936de483253SVishal Kulkarni 		0x3c8c0, 0x3c908,
937de483253SVishal Kulkarni 		0x3c910, 0x3c9ac,
938de483253SVishal Kulkarni 		0x3ca00, 0x3ca14,
939de483253SVishal Kulkarni 		0x3ca1c, 0x3ca2c,
940de483253SVishal Kulkarni 		0x3ca44, 0x3ca50,
941de483253SVishal Kulkarni 		0x3ca74, 0x3ca74,
942de483253SVishal Kulkarni 		0x3ca7c, 0x3cafc,
943de483253SVishal Kulkarni 		0x3cb08, 0x3cc24,
944de483253SVishal Kulkarni 		0x3cd00, 0x3cd00,
945de483253SVishal Kulkarni 		0x3cd08, 0x3cd14,
946de483253SVishal Kulkarni 		0x3cd1c, 0x3cd20,
947de483253SVishal Kulkarni 		0x3cd3c, 0x3cd3c,
948de483253SVishal Kulkarni 		0x3cd48, 0x3cd50,
949de483253SVishal Kulkarni 		0x3d200, 0x3d20c,
950de483253SVishal Kulkarni 		0x3d220, 0x3d220,
951de483253SVishal Kulkarni 		0x3d240, 0x3d240,
952de483253SVishal Kulkarni 		0x3d600, 0x3d60c,
953de483253SVishal Kulkarni 		0x3da00, 0x3da1c,
954de483253SVishal Kulkarni 		0x3de00, 0x3de20,
955de483253SVishal Kulkarni 		0x3de38, 0x3de3c,
956de483253SVishal Kulkarni 		0x3de80, 0x3de80,
957de483253SVishal Kulkarni 		0x3de88, 0x3dea8,
958de483253SVishal Kulkarni 		0x3deb0, 0x3deb4,
959de483253SVishal Kulkarni 		0x3dec8, 0x3ded4,
960de483253SVishal Kulkarni 		0x3dfb8, 0x3e004,
961de483253SVishal Kulkarni 		0x3e200, 0x3e200,
962de483253SVishal Kulkarni 		0x3e208, 0x3e240,
963de483253SVishal Kulkarni 		0x3e248, 0x3e280,
964de483253SVishal Kulkarni 		0x3e288, 0x3e2c0,
965de483253SVishal Kulkarni 		0x3e2c8, 0x3e2fc,
966de483253SVishal Kulkarni 		0x3e600, 0x3e630,
967de483253SVishal Kulkarni 		0x3ea00, 0x3eabc,
968de483253SVishal Kulkarni 		0x3eb00, 0x3eb10,
969de483253SVishal Kulkarni 		0x3eb20, 0x3eb30,
970de483253SVishal Kulkarni 		0x3eb40, 0x3eb50,
971de483253SVishal Kulkarni 		0x3eb60, 0x3eb70,
972de483253SVishal Kulkarni 		0x3f000, 0x3f028,
973de483253SVishal Kulkarni 		0x3f030, 0x3f048,
974de483253SVishal Kulkarni 		0x3f060, 0x3f068,
975de483253SVishal Kulkarni 		0x3f070, 0x3f09c,
976de483253SVishal Kulkarni 		0x3f0f0, 0x3f128,
977de483253SVishal Kulkarni 		0x3f130, 0x3f148,
978de483253SVishal Kulkarni 		0x3f160, 0x3f168,
979de483253SVishal Kulkarni 		0x3f170, 0x3f19c,
980de483253SVishal Kulkarni 		0x3f1f0, 0x3f238,
981de483253SVishal Kulkarni 		0x3f240, 0x3f240,
982de483253SVishal Kulkarni 		0x3f248, 0x3f250,
983de483253SVishal Kulkarni 		0x3f25c, 0x3f264,
984de483253SVishal Kulkarni 		0x3f270, 0x3f2b8,
985de483253SVishal Kulkarni 		0x3f2c0, 0x3f2e4,
986de483253SVishal Kulkarni 		0x3f2f8, 0x3f338,
987de483253SVishal Kulkarni 		0x3f340, 0x3f340,
988de483253SVishal Kulkarni 		0x3f348, 0x3f350,
989de483253SVishal Kulkarni 		0x3f35c, 0x3f364,
990de483253SVishal Kulkarni 		0x3f370, 0x3f3b8,
991de483253SVishal Kulkarni 		0x3f3c0, 0x3f3e4,
992de483253SVishal Kulkarni 		0x3f3f8, 0x3f428,
993de483253SVishal Kulkarni 		0x3f430, 0x3f448,
994de483253SVishal Kulkarni 		0x3f460, 0x3f468,
995de483253SVishal Kulkarni 		0x3f470, 0x3f49c,
996de483253SVishal Kulkarni 		0x3f4f0, 0x3f528,
997de483253SVishal Kulkarni 		0x3f530, 0x3f548,
998de483253SVishal Kulkarni 		0x3f560, 0x3f568,
999de483253SVishal Kulkarni 		0x3f570, 0x3f59c,
1000de483253SVishal Kulkarni 		0x3f5f0, 0x3f638,
1001de483253SVishal Kulkarni 		0x3f640, 0x3f640,
1002de483253SVishal Kulkarni 		0x3f648, 0x3f650,
1003de483253SVishal Kulkarni 		0x3f65c, 0x3f664,
1004de483253SVishal Kulkarni 		0x3f670, 0x3f6b8,
1005de483253SVishal Kulkarni 		0x3f6c0, 0x3f6e4,
1006de483253SVishal Kulkarni 		0x3f6f8, 0x3f738,
1007de483253SVishal Kulkarni 		0x3f740, 0x3f740,
1008de483253SVishal Kulkarni 		0x3f748, 0x3f750,
1009de483253SVishal Kulkarni 		0x3f75c, 0x3f764,
1010de483253SVishal Kulkarni 		0x3f770, 0x3f7b8,
1011de483253SVishal Kulkarni 		0x3f7c0, 0x3f7e4,
1012de483253SVishal Kulkarni 		0x3f7f8, 0x3f7fc,
1013de483253SVishal Kulkarni 		0x3f814, 0x3f814,
1014de483253SVishal Kulkarni 		0x3f82c, 0x3f82c,
1015de483253SVishal Kulkarni 		0x3f880, 0x3f88c,
1016de483253SVishal Kulkarni 		0x3f8e8, 0x3f8ec,
1017de483253SVishal Kulkarni 		0x3f900, 0x3f928,
1018de483253SVishal Kulkarni 		0x3f930, 0x3f948,
1019de483253SVishal Kulkarni 		0x3f960, 0x3f968,
1020de483253SVishal Kulkarni 		0x3f970, 0x3f99c,
1021de483253SVishal Kulkarni 		0x3f9f0, 0x3fa38,
1022de483253SVishal Kulkarni 		0x3fa40, 0x3fa40,
1023de483253SVishal Kulkarni 		0x3fa48, 0x3fa50,
1024de483253SVishal Kulkarni 		0x3fa5c, 0x3fa64,
1025de483253SVishal Kulkarni 		0x3fa70, 0x3fab8,
1026de483253SVishal Kulkarni 		0x3fac0, 0x3fae4,
1027de483253SVishal Kulkarni 		0x3faf8, 0x3fb10,
1028de483253SVishal Kulkarni 		0x3fb28, 0x3fb28,
1029de483253SVishal Kulkarni 		0x3fb3c, 0x3fb50,
1030de483253SVishal Kulkarni 		0x3fbf0, 0x3fc10,
1031de483253SVishal Kulkarni 		0x3fc28, 0x3fc28,
1032de483253SVishal Kulkarni 		0x3fc3c, 0x3fc50,
1033de483253SVishal Kulkarni 		0x3fcf0, 0x3fcfc,
1034de483253SVishal Kulkarni 		0x40000, 0x4000c,
1035de483253SVishal Kulkarni 		0x40040, 0x40050,
1036de483253SVishal Kulkarni 		0x40060, 0x40068,
1037de483253SVishal Kulkarni 		0x4007c, 0x4008c,
1038de483253SVishal Kulkarni 		0x40094, 0x400b0,
1039de483253SVishal Kulkarni 		0x400c0, 0x40144,
1040de483253SVishal Kulkarni 		0x40180, 0x4018c,
1041de483253SVishal Kulkarni 		0x40200, 0x40254,
1042de483253SVishal Kulkarni 		0x40260, 0x40264,
1043de483253SVishal Kulkarni 		0x40270, 0x40288,
1044de483253SVishal Kulkarni 		0x40290, 0x40298,
1045de483253SVishal Kulkarni 		0x402ac, 0x402c8,
1046de483253SVishal Kulkarni 		0x402d0, 0x402e0,
1047de483253SVishal Kulkarni 		0x402f0, 0x402f0,
1048de483253SVishal Kulkarni 		0x40300, 0x4033c,
1049de483253SVishal Kulkarni 		0x403f8, 0x403fc,
1050de483253SVishal Kulkarni 		0x41304, 0x413c4,
1051de483253SVishal Kulkarni 		0x41400, 0x4140c,
1052de483253SVishal Kulkarni 		0x41414, 0x4141c,
1053de483253SVishal Kulkarni 		0x41480, 0x414d0,
1054de483253SVishal Kulkarni 		0x44000, 0x44054,
1055de483253SVishal Kulkarni 		0x4405c, 0x44078,
1056de483253SVishal Kulkarni 		0x440c0, 0x44174,
1057de483253SVishal Kulkarni 		0x44180, 0x441ac,
1058de483253SVishal Kulkarni 		0x441b4, 0x441b8,
1059de483253SVishal Kulkarni 		0x441c0, 0x44254,
1060de483253SVishal Kulkarni 		0x4425c, 0x44278,
1061de483253SVishal Kulkarni 		0x442c0, 0x44374,
1062de483253SVishal Kulkarni 		0x44380, 0x443ac,
1063de483253SVishal Kulkarni 		0x443b4, 0x443b8,
1064de483253SVishal Kulkarni 		0x443c0, 0x44454,
1065de483253SVishal Kulkarni 		0x4445c, 0x44478,
1066de483253SVishal Kulkarni 		0x444c0, 0x44574,
1067de483253SVishal Kulkarni 		0x44580, 0x445ac,
1068de483253SVishal Kulkarni 		0x445b4, 0x445b8,
1069de483253SVishal Kulkarni 		0x445c0, 0x44654,
1070de483253SVishal Kulkarni 		0x4465c, 0x44678,
1071de483253SVishal Kulkarni 		0x446c0, 0x44774,
1072de483253SVishal Kulkarni 		0x44780, 0x447ac,
1073de483253SVishal Kulkarni 		0x447b4, 0x447b8,
1074de483253SVishal Kulkarni 		0x447c0, 0x44854,
1075de483253SVishal Kulkarni 		0x4485c, 0x44878,
1076de483253SVishal Kulkarni 		0x448c0, 0x44974,
1077de483253SVishal Kulkarni 		0x44980, 0x449ac,
1078de483253SVishal Kulkarni 		0x449b4, 0x449b8,
1079de483253SVishal Kulkarni 		0x449c0, 0x449fc,
1080de483253SVishal Kulkarni 		0x45000, 0x45004,
1081de483253SVishal Kulkarni 		0x45010, 0x45030,
1082de483253SVishal Kulkarni 		0x45040, 0x45060,
1083de483253SVishal Kulkarni 		0x45068, 0x45068,
1084de483253SVishal Kulkarni 		0x45080, 0x45084,
1085de483253SVishal Kulkarni 		0x450a0, 0x450b0,
1086de483253SVishal Kulkarni 		0x45200, 0x45204,
1087de483253SVishal Kulkarni 		0x45210, 0x45230,
1088de483253SVishal Kulkarni 		0x45240, 0x45260,
1089de483253SVishal Kulkarni 		0x45268, 0x45268,
1090de483253SVishal Kulkarni 		0x45280, 0x45284,
1091de483253SVishal Kulkarni 		0x452a0, 0x452b0,
1092de483253SVishal Kulkarni 		0x460c0, 0x460e4,
1093de483253SVishal Kulkarni 		0x47000, 0x4703c,
1094de483253SVishal Kulkarni 		0x47044, 0x4708c,
1095de483253SVishal Kulkarni 		0x47200, 0x47250,
1096de483253SVishal Kulkarni 		0x47400, 0x47408,
1097de483253SVishal Kulkarni 		0x47414, 0x47420,
1098de483253SVishal Kulkarni 		0x47600, 0x47618,
1099de483253SVishal Kulkarni 		0x47800, 0x47814,
1100de483253SVishal Kulkarni 		0x48000, 0x4800c,
1101de483253SVishal Kulkarni 		0x48040, 0x48050,
1102de483253SVishal Kulkarni 		0x48060, 0x48068,
1103de483253SVishal Kulkarni 		0x4807c, 0x4808c,
1104de483253SVishal Kulkarni 		0x48094, 0x480b0,
1105de483253SVishal Kulkarni 		0x480c0, 0x48144,
1106de483253SVishal Kulkarni 		0x48180, 0x4818c,
1107de483253SVishal Kulkarni 		0x48200, 0x48254,
1108de483253SVishal Kulkarni 		0x48260, 0x48264,
1109de483253SVishal Kulkarni 		0x48270, 0x48288,
1110de483253SVishal Kulkarni 		0x48290, 0x48298,
1111de483253SVishal Kulkarni 		0x482ac, 0x482c8,
1112de483253SVishal Kulkarni 		0x482d0, 0x482e0,
1113de483253SVishal Kulkarni 		0x482f0, 0x482f0,
1114de483253SVishal Kulkarni 		0x48300, 0x4833c,
1115de483253SVishal Kulkarni 		0x483f8, 0x483fc,
1116de483253SVishal Kulkarni 		0x49304, 0x493c4,
1117de483253SVishal Kulkarni 		0x49400, 0x4940c,
1118de483253SVishal Kulkarni 		0x49414, 0x4941c,
1119de483253SVishal Kulkarni 		0x49480, 0x494d0,
1120de483253SVishal Kulkarni 		0x4c000, 0x4c054,
1121de483253SVishal Kulkarni 		0x4c05c, 0x4c078,
1122de483253SVishal Kulkarni 		0x4c0c0, 0x4c174,
1123de483253SVishal Kulkarni 		0x4c180, 0x4c1ac,
1124de483253SVishal Kulkarni 		0x4c1b4, 0x4c1b8,
1125de483253SVishal Kulkarni 		0x4c1c0, 0x4c254,
1126de483253SVishal Kulkarni 		0x4c25c, 0x4c278,
1127de483253SVishal Kulkarni 		0x4c2c0, 0x4c374,
1128de483253SVishal Kulkarni 		0x4c380, 0x4c3ac,
1129de483253SVishal Kulkarni 		0x4c3b4, 0x4c3b8,
1130de483253SVishal Kulkarni 		0x4c3c0, 0x4c454,
1131de483253SVishal Kulkarni 		0x4c45c, 0x4c478,
1132de483253SVishal Kulkarni 		0x4c4c0, 0x4c574,
1133de483253SVishal Kulkarni 		0x4c580, 0x4c5ac,
1134de483253SVishal Kulkarni 		0x4c5b4, 0x4c5b8,
1135de483253SVishal Kulkarni 		0x4c5c0, 0x4c654,
1136de483253SVishal Kulkarni 		0x4c65c, 0x4c678,
1137de483253SVishal Kulkarni 		0x4c6c0, 0x4c774,
1138de483253SVishal Kulkarni 		0x4c780, 0x4c7ac,
1139de483253SVishal Kulkarni 		0x4c7b4, 0x4c7b8,
1140de483253SVishal Kulkarni 		0x4c7c0, 0x4c854,
1141de483253SVishal Kulkarni 		0x4c85c, 0x4c878,
1142de483253SVishal Kulkarni 		0x4c8c0, 0x4c974,
1143de483253SVishal Kulkarni 		0x4c980, 0x4c9ac,
1144de483253SVishal Kulkarni 		0x4c9b4, 0x4c9b8,
1145de483253SVishal Kulkarni 		0x4c9c0, 0x4c9fc,
1146de483253SVishal Kulkarni 		0x4d000, 0x4d004,
1147de483253SVishal Kulkarni 		0x4d010, 0x4d030,
1148de483253SVishal Kulkarni 		0x4d040, 0x4d060,
1149de483253SVishal Kulkarni 		0x4d068, 0x4d068,
1150de483253SVishal Kulkarni 		0x4d080, 0x4d084,
1151de483253SVishal Kulkarni 		0x4d0a0, 0x4d0b0,
1152de483253SVishal Kulkarni 		0x4d200, 0x4d204,
1153de483253SVishal Kulkarni 		0x4d210, 0x4d230,
1154de483253SVishal Kulkarni 		0x4d240, 0x4d260,
1155de483253SVishal Kulkarni 		0x4d268, 0x4d268,
1156de483253SVishal Kulkarni 		0x4d280, 0x4d284,
1157de483253SVishal Kulkarni 		0x4d2a0, 0x4d2b0,
1158de483253SVishal Kulkarni 		0x4e0c0, 0x4e0e4,
1159de483253SVishal Kulkarni 		0x4f000, 0x4f03c,
1160de483253SVishal Kulkarni 		0x4f044, 0x4f08c,
1161de483253SVishal Kulkarni 		0x4f200, 0x4f250,
1162de483253SVishal Kulkarni 		0x4f400, 0x4f408,
1163de483253SVishal Kulkarni 		0x4f414, 0x4f420,
1164de483253SVishal Kulkarni 		0x4f600, 0x4f618,
1165de483253SVishal Kulkarni 		0x4f800, 0x4f814,
1166de483253SVishal Kulkarni 		0x50000, 0x50084,
1167de483253SVishal Kulkarni 		0x50090, 0x500cc,
1168de483253SVishal Kulkarni 		0x50400, 0x50400,
1169de483253SVishal Kulkarni 		0x50800, 0x50884,
1170de483253SVishal Kulkarni 		0x50890, 0x508cc,
1171de483253SVishal Kulkarni 		0x50c00, 0x50c00,
1172de483253SVishal Kulkarni 		0x51000, 0x5101c,
1173de483253SVishal Kulkarni 		0x51300, 0x51308,
1174de483253SVishal Kulkarni 	};
1175de483253SVishal Kulkarni 
1176*fcabbd87SPotnuri Bharat Teja 	static const unsigned int t6_reg_ranges[] = {
1177*fcabbd87SPotnuri Bharat Teja 		0x1008, 0x101c,
1178*fcabbd87SPotnuri Bharat Teja 		0x1024, 0x10a8,
1179*fcabbd87SPotnuri Bharat Teja 		0x10b4, 0x10f8,
1180*fcabbd87SPotnuri Bharat Teja 		0x1100, 0x1114,
1181*fcabbd87SPotnuri Bharat Teja 		0x111c, 0x112c,
1182*fcabbd87SPotnuri Bharat Teja 		0x1138, 0x113c,
1183*fcabbd87SPotnuri Bharat Teja 		0x1144, 0x114c,
1184*fcabbd87SPotnuri Bharat Teja 		0x1180, 0x1184,
1185*fcabbd87SPotnuri Bharat Teja 		0x1190, 0x1194,
1186*fcabbd87SPotnuri Bharat Teja 		0x11a0, 0x11a4,
1187*fcabbd87SPotnuri Bharat Teja 		0x11b0, 0x11c4,
1188*fcabbd87SPotnuri Bharat Teja 		0x11fc, 0x123c,
1189*fcabbd87SPotnuri Bharat Teja 		0x1254, 0x1274,
1190*fcabbd87SPotnuri Bharat Teja 		0x1280, 0x133c,
1191*fcabbd87SPotnuri Bharat Teja 		0x1800, 0x18fc,
1192*fcabbd87SPotnuri Bharat Teja 		0x3000, 0x302c,
1193*fcabbd87SPotnuri Bharat Teja 		0x3060, 0x30b0,
1194*fcabbd87SPotnuri Bharat Teja 		0x30b8, 0x30d8,
1195*fcabbd87SPotnuri Bharat Teja 		0x30e0, 0x30fc,
1196*fcabbd87SPotnuri Bharat Teja 		0x3140, 0x357c,
1197*fcabbd87SPotnuri Bharat Teja 		0x35a8, 0x35cc,
1198*fcabbd87SPotnuri Bharat Teja 		0x35ec, 0x35ec,
1199*fcabbd87SPotnuri Bharat Teja 		0x3600, 0x5624,
1200*fcabbd87SPotnuri Bharat Teja 		0x56cc, 0x56ec,
1201*fcabbd87SPotnuri Bharat Teja 		0x56f4, 0x5720,
1202*fcabbd87SPotnuri Bharat Teja 		0x5728, 0x575c,
1203*fcabbd87SPotnuri Bharat Teja 		0x580c, 0x5814,
1204*fcabbd87SPotnuri Bharat Teja 		0x5890, 0x589c,
1205*fcabbd87SPotnuri Bharat Teja 		0x58a4, 0x58ac,
1206*fcabbd87SPotnuri Bharat Teja 		0x58b8, 0x58bc,
1207*fcabbd87SPotnuri Bharat Teja 		0x5940, 0x595c,
1208*fcabbd87SPotnuri Bharat Teja 		0x5980, 0x598c,
1209*fcabbd87SPotnuri Bharat Teja 		0x59b0, 0x59c8,
1210*fcabbd87SPotnuri Bharat Teja 		0x59d0, 0x59dc,
1211*fcabbd87SPotnuri Bharat Teja 		0x59fc, 0x5a18,
1212*fcabbd87SPotnuri Bharat Teja 		0x5a60, 0x5a6c,
1213*fcabbd87SPotnuri Bharat Teja 		0x5a80, 0x5a8c,
1214*fcabbd87SPotnuri Bharat Teja 		0x5a94, 0x5a9c,
1215*fcabbd87SPotnuri Bharat Teja 		0x5b94, 0x5bfc,
1216*fcabbd87SPotnuri Bharat Teja 		0x5c10, 0x5e48,
1217*fcabbd87SPotnuri Bharat Teja 		0x5e50, 0x5e94,
1218*fcabbd87SPotnuri Bharat Teja 		0x5ea0, 0x5eb0,
1219*fcabbd87SPotnuri Bharat Teja 		0x5ec0, 0x5ec0,
1220*fcabbd87SPotnuri Bharat Teja 		0x5ec8, 0x5ed0,
1221*fcabbd87SPotnuri Bharat Teja 		0x5ee0, 0x5ee0,
1222*fcabbd87SPotnuri Bharat Teja 		0x5ef0, 0x5ef0,
1223*fcabbd87SPotnuri Bharat Teja 		0x5f00, 0x5f00,
1224*fcabbd87SPotnuri Bharat Teja 		0x6000, 0x6020,
1225*fcabbd87SPotnuri Bharat Teja 		0x6028, 0x6040,
1226*fcabbd87SPotnuri Bharat Teja 		0x6058, 0x609c,
1227*fcabbd87SPotnuri Bharat Teja 		0x60a8, 0x619c,
1228*fcabbd87SPotnuri Bharat Teja 		0x7700, 0x7798,
1229*fcabbd87SPotnuri Bharat Teja 		0x77c0, 0x7880,
1230*fcabbd87SPotnuri Bharat Teja 		0x78cc, 0x78fc,
1231*fcabbd87SPotnuri Bharat Teja 		0x7b00, 0x7b58,
1232*fcabbd87SPotnuri Bharat Teja 		0x7b60, 0x7b84,
1233*fcabbd87SPotnuri Bharat Teja 		0x7b8c, 0x7c54,
1234*fcabbd87SPotnuri Bharat Teja 		0x7d00, 0x7d38,
1235*fcabbd87SPotnuri Bharat Teja 		0x7d40, 0x7d84,
1236*fcabbd87SPotnuri Bharat Teja 		0x7d8c, 0x7ddc,
1237*fcabbd87SPotnuri Bharat Teja 		0x7de4, 0x7e04,
1238*fcabbd87SPotnuri Bharat Teja 		0x7e10, 0x7e1c,
1239*fcabbd87SPotnuri Bharat Teja 		0x7e24, 0x7e38,
1240*fcabbd87SPotnuri Bharat Teja 		0x7e40, 0x7e44,
1241*fcabbd87SPotnuri Bharat Teja 		0x7e4c, 0x7e78,
1242*fcabbd87SPotnuri Bharat Teja 		0x7e80, 0x7edc,
1243*fcabbd87SPotnuri Bharat Teja 		0x7ee8, 0x7efc,
1244*fcabbd87SPotnuri Bharat Teja 		0x8dc0, 0x8de0,
1245*fcabbd87SPotnuri Bharat Teja 		0x8df8, 0x8e04,
1246*fcabbd87SPotnuri Bharat Teja 		0x8e10, 0x8e84,
1247*fcabbd87SPotnuri Bharat Teja 		0x8ea0, 0x8f88,
1248*fcabbd87SPotnuri Bharat Teja 		0x8fb8, 0x9058,
1249*fcabbd87SPotnuri Bharat Teja 		0x9060, 0x9060,
1250*fcabbd87SPotnuri Bharat Teja 		0x9068, 0x90f8,
1251*fcabbd87SPotnuri Bharat Teja 		0x9100, 0x9124,
1252*fcabbd87SPotnuri Bharat Teja 		0x9400, 0x9470,
1253*fcabbd87SPotnuri Bharat Teja 		0x9600, 0x9600,
1254*fcabbd87SPotnuri Bharat Teja 		0x9608, 0x9638,
1255*fcabbd87SPotnuri Bharat Teja 		0x9640, 0x9704,
1256*fcabbd87SPotnuri Bharat Teja 		0x9710, 0x971c,
1257*fcabbd87SPotnuri Bharat Teja 		0x9800, 0x9808,
1258*fcabbd87SPotnuri Bharat Teja 		0x9810, 0x9864,
1259*fcabbd87SPotnuri Bharat Teja 		0x9c00, 0x9c6c,
1260*fcabbd87SPotnuri Bharat Teja 		0x9c80, 0x9cec,
1261*fcabbd87SPotnuri Bharat Teja 		0x9d00, 0x9d6c,
1262*fcabbd87SPotnuri Bharat Teja 		0x9d80, 0x9dec,
1263*fcabbd87SPotnuri Bharat Teja 		0x9e00, 0x9e6c,
1264*fcabbd87SPotnuri Bharat Teja 		0x9e80, 0x9eec,
1265*fcabbd87SPotnuri Bharat Teja 		0x9f00, 0x9f6c,
1266*fcabbd87SPotnuri Bharat Teja 		0x9f80, 0xa020,
1267*fcabbd87SPotnuri Bharat Teja 		0xd000, 0xd03c,
1268*fcabbd87SPotnuri Bharat Teja 		0xd100, 0xd118,
1269*fcabbd87SPotnuri Bharat Teja 		0xd200, 0xd214,
1270*fcabbd87SPotnuri Bharat Teja 		0xd220, 0xd234,
1271*fcabbd87SPotnuri Bharat Teja 		0xd240, 0xd254,
1272*fcabbd87SPotnuri Bharat Teja 		0xd260, 0xd274,
1273*fcabbd87SPotnuri Bharat Teja 		0xd280, 0xd294,
1274*fcabbd87SPotnuri Bharat Teja 		0xd2a0, 0xd2b4,
1275*fcabbd87SPotnuri Bharat Teja 		0xd2c0, 0xd2d4,
1276*fcabbd87SPotnuri Bharat Teja 		0xd2e0, 0xd2f4,
1277*fcabbd87SPotnuri Bharat Teja 		0xd300, 0xd31c,
1278*fcabbd87SPotnuri Bharat Teja 		0xdfc0, 0xdfe0,
1279*fcabbd87SPotnuri Bharat Teja 		0xe000, 0xf008,
1280*fcabbd87SPotnuri Bharat Teja 		0xf010, 0xf018,
1281*fcabbd87SPotnuri Bharat Teja 		0xf020, 0xf028,
1282*fcabbd87SPotnuri Bharat Teja 		0x11000, 0x11014,
1283*fcabbd87SPotnuri Bharat Teja 		0x11048, 0x1106c,
1284*fcabbd87SPotnuri Bharat Teja 		0x11074, 0x11088,
1285*fcabbd87SPotnuri Bharat Teja 		0x11098, 0x11120,
1286*fcabbd87SPotnuri Bharat Teja 		0x1112c, 0x1117c,
1287*fcabbd87SPotnuri Bharat Teja 		0x11190, 0x112e0,
1288*fcabbd87SPotnuri Bharat Teja 		0x11300, 0x1130c,
1289*fcabbd87SPotnuri Bharat Teja 		0x12000, 0x1206c,
1290*fcabbd87SPotnuri Bharat Teja 		0x19040, 0x1906c,
1291*fcabbd87SPotnuri Bharat Teja 		0x19078, 0x19080,
1292*fcabbd87SPotnuri Bharat Teja 		0x1908c, 0x190e8,
1293*fcabbd87SPotnuri Bharat Teja 		0x190f0, 0x190f8,
1294*fcabbd87SPotnuri Bharat Teja 		0x19100, 0x19110,
1295*fcabbd87SPotnuri Bharat Teja 		0x19120, 0x19124,
1296*fcabbd87SPotnuri Bharat Teja 		0x19150, 0x19194,
1297*fcabbd87SPotnuri Bharat Teja 		0x1919c, 0x191b0,
1298*fcabbd87SPotnuri Bharat Teja 		0x191d0, 0x191e8,
1299*fcabbd87SPotnuri Bharat Teja 		0x19238, 0x19290,
1300*fcabbd87SPotnuri Bharat Teja 		0x192a4, 0x192b0,
1301*fcabbd87SPotnuri Bharat Teja 		0x19348, 0x1934c,
1302*fcabbd87SPotnuri Bharat Teja 		0x193f8, 0x19418,
1303*fcabbd87SPotnuri Bharat Teja 		0x19420, 0x19428,
1304*fcabbd87SPotnuri Bharat Teja 		0x19430, 0x19444,
1305*fcabbd87SPotnuri Bharat Teja 		0x1944c, 0x1946c,
1306*fcabbd87SPotnuri Bharat Teja 		0x19474, 0x19474,
1307*fcabbd87SPotnuri Bharat Teja 		0x19490, 0x194cc,
1308*fcabbd87SPotnuri Bharat Teja 		0x194f0, 0x194f8,
1309*fcabbd87SPotnuri Bharat Teja 		0x19c00, 0x19c48,
1310*fcabbd87SPotnuri Bharat Teja 		0x19c50, 0x19c80,
1311*fcabbd87SPotnuri Bharat Teja 		0x19c94, 0x19c98,
1312*fcabbd87SPotnuri Bharat Teja 		0x19ca0, 0x19cbc,
1313*fcabbd87SPotnuri Bharat Teja 		0x19ce4, 0x19ce4,
1314*fcabbd87SPotnuri Bharat Teja 		0x19cf0, 0x19cf8,
1315*fcabbd87SPotnuri Bharat Teja 		0x19d00, 0x19d28,
1316*fcabbd87SPotnuri Bharat Teja 		0x19d50, 0x19d78,
1317*fcabbd87SPotnuri Bharat Teja 		0x19d94, 0x19d98,
1318*fcabbd87SPotnuri Bharat Teja 		0x19da0, 0x19de0,
1319*fcabbd87SPotnuri Bharat Teja 		0x19df0, 0x19e10,
1320*fcabbd87SPotnuri Bharat Teja 		0x19e50, 0x19e6c,
1321*fcabbd87SPotnuri Bharat Teja 		0x19ea0, 0x19ebc,
1322*fcabbd87SPotnuri Bharat Teja 		0x19ec4, 0x19ef4,
1323*fcabbd87SPotnuri Bharat Teja 		0x19f04, 0x19f2c,
1324*fcabbd87SPotnuri Bharat Teja 		0x19f34, 0x19f34,
1325*fcabbd87SPotnuri Bharat Teja 		0x19f40, 0x19f50,
1326*fcabbd87SPotnuri Bharat Teja 		0x19f90, 0x19fac,
1327*fcabbd87SPotnuri Bharat Teja 		0x19fc4, 0x19fc8,
1328*fcabbd87SPotnuri Bharat Teja 		0x19fd0, 0x19fe4,
1329*fcabbd87SPotnuri Bharat Teja 		0x1a000, 0x1a004,
1330*fcabbd87SPotnuri Bharat Teja 		0x1a010, 0x1a06c,
1331*fcabbd87SPotnuri Bharat Teja 		0x1a0b0, 0x1a0e4,
1332*fcabbd87SPotnuri Bharat Teja 		0x1a0ec, 0x1a0f8,
1333*fcabbd87SPotnuri Bharat Teja 		0x1a100, 0x1a108,
1334*fcabbd87SPotnuri Bharat Teja 		0x1a114, 0x1a130,
1335*fcabbd87SPotnuri Bharat Teja 		0x1a138, 0x1a1c4,
1336*fcabbd87SPotnuri Bharat Teja 		0x1a1fc, 0x1a1fc,
1337*fcabbd87SPotnuri Bharat Teja 		0x1e008, 0x1e00c,
1338*fcabbd87SPotnuri Bharat Teja 		0x1e040, 0x1e044,
1339*fcabbd87SPotnuri Bharat Teja 		0x1e04c, 0x1e04c,
1340*fcabbd87SPotnuri Bharat Teja 		0x1e284, 0x1e290,
1341*fcabbd87SPotnuri Bharat Teja 		0x1e2c0, 0x1e2c0,
1342*fcabbd87SPotnuri Bharat Teja 		0x1e2e0, 0x1e2e0,
1343*fcabbd87SPotnuri Bharat Teja 		0x1e300, 0x1e384,
1344*fcabbd87SPotnuri Bharat Teja 		0x1e3c0, 0x1e3c8,
1345*fcabbd87SPotnuri Bharat Teja 		0x1e408, 0x1e40c,
1346*fcabbd87SPotnuri Bharat Teja 		0x1e440, 0x1e444,
1347*fcabbd87SPotnuri Bharat Teja 		0x1e44c, 0x1e44c,
1348*fcabbd87SPotnuri Bharat Teja 		0x1e684, 0x1e690,
1349*fcabbd87SPotnuri Bharat Teja 		0x1e6c0, 0x1e6c0,
1350*fcabbd87SPotnuri Bharat Teja 		0x1e6e0, 0x1e6e0,
1351*fcabbd87SPotnuri Bharat Teja 		0x1e700, 0x1e784,
1352*fcabbd87SPotnuri Bharat Teja 		0x1e7c0, 0x1e7c8,
1353*fcabbd87SPotnuri Bharat Teja 		0x1e808, 0x1e80c,
1354*fcabbd87SPotnuri Bharat Teja 		0x1e840, 0x1e844,
1355*fcabbd87SPotnuri Bharat Teja 		0x1e84c, 0x1e84c,
1356*fcabbd87SPotnuri Bharat Teja 		0x1ea84, 0x1ea90,
1357*fcabbd87SPotnuri Bharat Teja 		0x1eac0, 0x1eac0,
1358*fcabbd87SPotnuri Bharat Teja 		0x1eae0, 0x1eae0,
1359*fcabbd87SPotnuri Bharat Teja 		0x1eb00, 0x1eb84,
1360*fcabbd87SPotnuri Bharat Teja 		0x1ebc0, 0x1ebc8,
1361*fcabbd87SPotnuri Bharat Teja 		0x1ec08, 0x1ec0c,
1362*fcabbd87SPotnuri Bharat Teja 		0x1ec40, 0x1ec44,
1363*fcabbd87SPotnuri Bharat Teja 		0x1ec4c, 0x1ec4c,
1364*fcabbd87SPotnuri Bharat Teja 		0x1ee84, 0x1ee90,
1365*fcabbd87SPotnuri Bharat Teja 		0x1eec0, 0x1eec0,
1366*fcabbd87SPotnuri Bharat Teja 		0x1eee0, 0x1eee0,
1367*fcabbd87SPotnuri Bharat Teja 		0x1ef00, 0x1ef84,
1368*fcabbd87SPotnuri Bharat Teja 		0x1efc0, 0x1efc8,
1369*fcabbd87SPotnuri Bharat Teja 		0x1f008, 0x1f00c,
1370*fcabbd87SPotnuri Bharat Teja 		0x1f040, 0x1f044,
1371*fcabbd87SPotnuri Bharat Teja 		0x1f04c, 0x1f04c,
1372*fcabbd87SPotnuri Bharat Teja 		0x1f284, 0x1f290,
1373*fcabbd87SPotnuri Bharat Teja 		0x1f2c0, 0x1f2c0,
1374*fcabbd87SPotnuri Bharat Teja 		0x1f2e0, 0x1f2e0,
1375*fcabbd87SPotnuri Bharat Teja 		0x1f300, 0x1f384,
1376*fcabbd87SPotnuri Bharat Teja 		0x1f3c0, 0x1f3c8,
1377*fcabbd87SPotnuri Bharat Teja 		0x1f408, 0x1f40c,
1378*fcabbd87SPotnuri Bharat Teja 		0x1f440, 0x1f444,
1379*fcabbd87SPotnuri Bharat Teja 		0x1f44c, 0x1f44c,
1380*fcabbd87SPotnuri Bharat Teja 		0x1f684, 0x1f690,
1381*fcabbd87SPotnuri Bharat Teja 		0x1f6c0, 0x1f6c0,
1382*fcabbd87SPotnuri Bharat Teja 		0x1f6e0, 0x1f6e0,
1383*fcabbd87SPotnuri Bharat Teja 		0x1f700, 0x1f784,
1384*fcabbd87SPotnuri Bharat Teja 		0x1f7c0, 0x1f7c8,
1385*fcabbd87SPotnuri Bharat Teja 		0x1f808, 0x1f80c,
1386*fcabbd87SPotnuri Bharat Teja 		0x1f840, 0x1f844,
1387*fcabbd87SPotnuri Bharat Teja 		0x1f84c, 0x1f84c,
1388*fcabbd87SPotnuri Bharat Teja 		0x1fa84, 0x1fa90,
1389*fcabbd87SPotnuri Bharat Teja 		0x1fac0, 0x1fac0,
1390*fcabbd87SPotnuri Bharat Teja 		0x1fae0, 0x1fae0,
1391*fcabbd87SPotnuri Bharat Teja 		0x1fb00, 0x1fb84,
1392*fcabbd87SPotnuri Bharat Teja 		0x1fbc0, 0x1fbc8,
1393*fcabbd87SPotnuri Bharat Teja 		0x1fc08, 0x1fc0c,
1394*fcabbd87SPotnuri Bharat Teja 		0x1fc40, 0x1fc44,
1395*fcabbd87SPotnuri Bharat Teja 		0x1fc4c, 0x1fc4c,
1396*fcabbd87SPotnuri Bharat Teja 		0x1fe84, 0x1fe90,
1397*fcabbd87SPotnuri Bharat Teja 		0x1fec0, 0x1fec0,
1398*fcabbd87SPotnuri Bharat Teja 		0x1fee0, 0x1fee0,
1399*fcabbd87SPotnuri Bharat Teja 		0x1ff00, 0x1ff84,
1400*fcabbd87SPotnuri Bharat Teja 		0x1ffc0, 0x1ffc8,
1401*fcabbd87SPotnuri Bharat Teja 		0x30000, 0x30030,
1402*fcabbd87SPotnuri Bharat Teja 		0x30100, 0x30168,
1403*fcabbd87SPotnuri Bharat Teja 		0x30190, 0x301a0,
1404*fcabbd87SPotnuri Bharat Teja 		0x301a8, 0x301b8,
1405*fcabbd87SPotnuri Bharat Teja 		0x301c4, 0x301c8,
1406*fcabbd87SPotnuri Bharat Teja 		0x301d0, 0x301d0,
1407*fcabbd87SPotnuri Bharat Teja 		0x30200, 0x30320,
1408*fcabbd87SPotnuri Bharat Teja 		0x30400, 0x304b4,
1409*fcabbd87SPotnuri Bharat Teja 		0x304c0, 0x3052c,
1410*fcabbd87SPotnuri Bharat Teja 		0x30540, 0x3061c,
1411*fcabbd87SPotnuri Bharat Teja 		0x30800, 0x308a0,
1412*fcabbd87SPotnuri Bharat Teja 		0x308c0, 0x30908,
1413*fcabbd87SPotnuri Bharat Teja 		0x30910, 0x309b8,
1414*fcabbd87SPotnuri Bharat Teja 		0x30a00, 0x30a04,
1415*fcabbd87SPotnuri Bharat Teja 		0x30a0c, 0x30a14,
1416*fcabbd87SPotnuri Bharat Teja 		0x30a1c, 0x30a2c,
1417*fcabbd87SPotnuri Bharat Teja 		0x30a44, 0x30a50,
1418*fcabbd87SPotnuri Bharat Teja 		0x30a74, 0x30a74,
1419*fcabbd87SPotnuri Bharat Teja 		0x30a7c, 0x30afc,
1420*fcabbd87SPotnuri Bharat Teja 		0x30b08, 0x30c24,
1421*fcabbd87SPotnuri Bharat Teja 		0x30d00, 0x30d14,
1422*fcabbd87SPotnuri Bharat Teja 		0x30d1c, 0x30d3c,
1423*fcabbd87SPotnuri Bharat Teja 		0x30d44, 0x30d4c,
1424*fcabbd87SPotnuri Bharat Teja 		0x30d54, 0x30d74,
1425*fcabbd87SPotnuri Bharat Teja 		0x30d7c, 0x30d7c,
1426*fcabbd87SPotnuri Bharat Teja 		0x30de0, 0x30de0,
1427*fcabbd87SPotnuri Bharat Teja 		0x30e00, 0x30ed4,
1428*fcabbd87SPotnuri Bharat Teja 		0x30f00, 0x30fa4,
1429*fcabbd87SPotnuri Bharat Teja 		0x30fc0, 0x30fc4,
1430*fcabbd87SPotnuri Bharat Teja 		0x31000, 0x31004,
1431*fcabbd87SPotnuri Bharat Teja 		0x31080, 0x310fc,
1432*fcabbd87SPotnuri Bharat Teja 		0x31208, 0x31220,
1433*fcabbd87SPotnuri Bharat Teja 		0x3123c, 0x31254,
1434*fcabbd87SPotnuri Bharat Teja 		0x31300, 0x31300,
1435*fcabbd87SPotnuri Bharat Teja 		0x31308, 0x3131c,
1436*fcabbd87SPotnuri Bharat Teja 		0x31338, 0x3133c,
1437*fcabbd87SPotnuri Bharat Teja 		0x31380, 0x31380,
1438*fcabbd87SPotnuri Bharat Teja 		0x31388, 0x313a8,
1439*fcabbd87SPotnuri Bharat Teja 		0x313b4, 0x313b4,
1440*fcabbd87SPotnuri Bharat Teja 		0x31400, 0x31420,
1441*fcabbd87SPotnuri Bharat Teja 		0x31438, 0x3143c,
1442*fcabbd87SPotnuri Bharat Teja 		0x31480, 0x31480,
1443*fcabbd87SPotnuri Bharat Teja 		0x314a8, 0x314a8,
1444*fcabbd87SPotnuri Bharat Teja 		0x314b0, 0x314b4,
1445*fcabbd87SPotnuri Bharat Teja 		0x314c8, 0x314d4,
1446*fcabbd87SPotnuri Bharat Teja 		0x31a40, 0x31a4c,
1447*fcabbd87SPotnuri Bharat Teja 		0x31af0, 0x31b20,
1448*fcabbd87SPotnuri Bharat Teja 		0x31b38, 0x31b3c,
1449*fcabbd87SPotnuri Bharat Teja 		0x31b80, 0x31b80,
1450*fcabbd87SPotnuri Bharat Teja 		0x31ba8, 0x31ba8,
1451*fcabbd87SPotnuri Bharat Teja 		0x31bb0, 0x31bb4,
1452*fcabbd87SPotnuri Bharat Teja 		0x31bc8, 0x31bd4,
1453*fcabbd87SPotnuri Bharat Teja 		0x32140, 0x3218c,
1454*fcabbd87SPotnuri Bharat Teja 		0x321f0, 0x321f4,
1455*fcabbd87SPotnuri Bharat Teja 		0x32200, 0x32200,
1456*fcabbd87SPotnuri Bharat Teja 		0x32218, 0x32218,
1457*fcabbd87SPotnuri Bharat Teja 		0x32400, 0x32400,
1458*fcabbd87SPotnuri Bharat Teja 		0x32408, 0x3241c,
1459*fcabbd87SPotnuri Bharat Teja 		0x32618, 0x32620,
1460*fcabbd87SPotnuri Bharat Teja 		0x32664, 0x32664,
1461*fcabbd87SPotnuri Bharat Teja 		0x326a8, 0x326a8,
1462*fcabbd87SPotnuri Bharat Teja 		0x326ec, 0x326ec,
1463*fcabbd87SPotnuri Bharat Teja 		0x32a00, 0x32abc,
1464*fcabbd87SPotnuri Bharat Teja 		0x32b00, 0x32b18,
1465*fcabbd87SPotnuri Bharat Teja 		0x32b20, 0x32b38,
1466*fcabbd87SPotnuri Bharat Teja 		0x32b40, 0x32b58,
1467*fcabbd87SPotnuri Bharat Teja 		0x32b60, 0x32b78,
1468*fcabbd87SPotnuri Bharat Teja 		0x32c00, 0x32c00,
1469*fcabbd87SPotnuri Bharat Teja 		0x32c08, 0x32c3c,
1470*fcabbd87SPotnuri Bharat Teja 		0x33000, 0x3302c,
1471*fcabbd87SPotnuri Bharat Teja 		0x33034, 0x33050,
1472*fcabbd87SPotnuri Bharat Teja 		0x33058, 0x33058,
1473*fcabbd87SPotnuri Bharat Teja 		0x33060, 0x3308c,
1474*fcabbd87SPotnuri Bharat Teja 		0x3309c, 0x330ac,
1475*fcabbd87SPotnuri Bharat Teja 		0x330c0, 0x330c0,
1476*fcabbd87SPotnuri Bharat Teja 		0x330c8, 0x330d0,
1477*fcabbd87SPotnuri Bharat Teja 		0x330d8, 0x330e0,
1478*fcabbd87SPotnuri Bharat Teja 		0x330ec, 0x3312c,
1479*fcabbd87SPotnuri Bharat Teja 		0x33134, 0x33150,
1480*fcabbd87SPotnuri Bharat Teja 		0x33158, 0x33158,
1481*fcabbd87SPotnuri Bharat Teja 		0x33160, 0x3318c,
1482*fcabbd87SPotnuri Bharat Teja 		0x3319c, 0x331ac,
1483*fcabbd87SPotnuri Bharat Teja 		0x331c0, 0x331c0,
1484*fcabbd87SPotnuri Bharat Teja 		0x331c8, 0x331d0,
1485*fcabbd87SPotnuri Bharat Teja 		0x331d8, 0x331e0,
1486*fcabbd87SPotnuri Bharat Teja 		0x331ec, 0x33290,
1487*fcabbd87SPotnuri Bharat Teja 		0x33298, 0x332c4,
1488*fcabbd87SPotnuri Bharat Teja 		0x332e4, 0x33390,
1489*fcabbd87SPotnuri Bharat Teja 		0x33398, 0x333c4,
1490*fcabbd87SPotnuri Bharat Teja 		0x333e4, 0x3342c,
1491*fcabbd87SPotnuri Bharat Teja 		0x33434, 0x33450,
1492*fcabbd87SPotnuri Bharat Teja 		0x33458, 0x33458,
1493*fcabbd87SPotnuri Bharat Teja 		0x33460, 0x3348c,
1494*fcabbd87SPotnuri Bharat Teja 		0x3349c, 0x334ac,
1495*fcabbd87SPotnuri Bharat Teja 		0x334c0, 0x334c0,
1496*fcabbd87SPotnuri Bharat Teja 		0x334c8, 0x334d0,
1497*fcabbd87SPotnuri Bharat Teja 		0x334d8, 0x334e0,
1498*fcabbd87SPotnuri Bharat Teja 		0x334ec, 0x3352c,
1499*fcabbd87SPotnuri Bharat Teja 		0x33534, 0x33550,
1500*fcabbd87SPotnuri Bharat Teja 		0x33558, 0x33558,
1501*fcabbd87SPotnuri Bharat Teja 		0x33560, 0x3358c,
1502*fcabbd87SPotnuri Bharat Teja 		0x3359c, 0x335ac,
1503*fcabbd87SPotnuri Bharat Teja 		0x335c0, 0x335c0,
1504*fcabbd87SPotnuri Bharat Teja 		0x335c8, 0x335d0,
1505*fcabbd87SPotnuri Bharat Teja 		0x335d8, 0x335e0,
1506*fcabbd87SPotnuri Bharat Teja 		0x335ec, 0x33690,
1507*fcabbd87SPotnuri Bharat Teja 		0x33698, 0x336c4,
1508*fcabbd87SPotnuri Bharat Teja 		0x336e4, 0x33790,
1509*fcabbd87SPotnuri Bharat Teja 		0x33798, 0x337c4,
1510*fcabbd87SPotnuri Bharat Teja 		0x337e4, 0x337fc,
1511*fcabbd87SPotnuri Bharat Teja 		0x33814, 0x33814,
1512*fcabbd87SPotnuri Bharat Teja 		0x33854, 0x33868,
1513*fcabbd87SPotnuri Bharat Teja 		0x33880, 0x3388c,
1514*fcabbd87SPotnuri Bharat Teja 		0x338c0, 0x338d0,
1515*fcabbd87SPotnuri Bharat Teja 		0x338e8, 0x338ec,
1516*fcabbd87SPotnuri Bharat Teja 		0x33900, 0x3392c,
1517*fcabbd87SPotnuri Bharat Teja 		0x33934, 0x33950,
1518*fcabbd87SPotnuri Bharat Teja 		0x33958, 0x33958,
1519*fcabbd87SPotnuri Bharat Teja 		0x33960, 0x3398c,
1520*fcabbd87SPotnuri Bharat Teja 		0x3399c, 0x339ac,
1521*fcabbd87SPotnuri Bharat Teja 		0x339c0, 0x339c0,
1522*fcabbd87SPotnuri Bharat Teja 		0x339c8, 0x339d0,
1523*fcabbd87SPotnuri Bharat Teja 		0x339d8, 0x339e0,
1524*fcabbd87SPotnuri Bharat Teja 		0x339ec, 0x33a90,
1525*fcabbd87SPotnuri Bharat Teja 		0x33a98, 0x33ac4,
1526*fcabbd87SPotnuri Bharat Teja 		0x33ae4, 0x33b10,
1527*fcabbd87SPotnuri Bharat Teja 		0x33b24, 0x33b28,
1528*fcabbd87SPotnuri Bharat Teja 		0x33b38, 0x33b50,
1529*fcabbd87SPotnuri Bharat Teja 		0x33bf0, 0x33c10,
1530*fcabbd87SPotnuri Bharat Teja 		0x33c24, 0x33c28,
1531*fcabbd87SPotnuri Bharat Teja 		0x33c38, 0x33c50,
1532*fcabbd87SPotnuri Bharat Teja 		0x33cf0, 0x33cfc,
1533*fcabbd87SPotnuri Bharat Teja 		0x34000, 0x34030,
1534*fcabbd87SPotnuri Bharat Teja 		0x34100, 0x34168,
1535*fcabbd87SPotnuri Bharat Teja 		0x34190, 0x341a0,
1536*fcabbd87SPotnuri Bharat Teja 		0x341a8, 0x341b8,
1537*fcabbd87SPotnuri Bharat Teja 		0x341c4, 0x341c8,
1538*fcabbd87SPotnuri Bharat Teja 		0x341d0, 0x341d0,
1539*fcabbd87SPotnuri Bharat Teja 		0x34200, 0x34320,
1540*fcabbd87SPotnuri Bharat Teja 		0x34400, 0x344b4,
1541*fcabbd87SPotnuri Bharat Teja 		0x344c0, 0x3452c,
1542*fcabbd87SPotnuri Bharat Teja 		0x34540, 0x3461c,
1543*fcabbd87SPotnuri Bharat Teja 		0x34800, 0x348a0,
1544*fcabbd87SPotnuri Bharat Teja 		0x348c0, 0x34908,
1545*fcabbd87SPotnuri Bharat Teja 		0x34910, 0x349b8,
1546*fcabbd87SPotnuri Bharat Teja 		0x34a00, 0x34a04,
1547*fcabbd87SPotnuri Bharat Teja 		0x34a0c, 0x34a14,
1548*fcabbd87SPotnuri Bharat Teja 		0x34a1c, 0x34a2c,
1549*fcabbd87SPotnuri Bharat Teja 		0x34a44, 0x34a50,
1550*fcabbd87SPotnuri Bharat Teja 		0x34a74, 0x34a74,
1551*fcabbd87SPotnuri Bharat Teja 		0x34a7c, 0x34afc,
1552*fcabbd87SPotnuri Bharat Teja 		0x34b08, 0x34c24,
1553*fcabbd87SPotnuri Bharat Teja 		0x34d00, 0x34d14,
1554*fcabbd87SPotnuri Bharat Teja 		0x34d1c, 0x34d3c,
1555*fcabbd87SPotnuri Bharat Teja 		0x34d44, 0x34d4c,
1556*fcabbd87SPotnuri Bharat Teja 		0x34d54, 0x34d74,
1557*fcabbd87SPotnuri Bharat Teja 		0x34d7c, 0x34d7c,
1558*fcabbd87SPotnuri Bharat Teja 		0x34de0, 0x34de0,
1559*fcabbd87SPotnuri Bharat Teja 		0x34e00, 0x34ed4,
1560*fcabbd87SPotnuri Bharat Teja 		0x34f00, 0x34fa4,
1561*fcabbd87SPotnuri Bharat Teja 		0x34fc0, 0x34fc4,
1562*fcabbd87SPotnuri Bharat Teja 		0x35000, 0x35004,
1563*fcabbd87SPotnuri Bharat Teja 		0x35080, 0x350fc,
1564*fcabbd87SPotnuri Bharat Teja 		0x35208, 0x35220,
1565*fcabbd87SPotnuri Bharat Teja 		0x3523c, 0x35254,
1566*fcabbd87SPotnuri Bharat Teja 		0x35300, 0x35300,
1567*fcabbd87SPotnuri Bharat Teja 		0x35308, 0x3531c,
1568*fcabbd87SPotnuri Bharat Teja 		0x35338, 0x3533c,
1569*fcabbd87SPotnuri Bharat Teja 		0x35380, 0x35380,
1570*fcabbd87SPotnuri Bharat Teja 		0x35388, 0x353a8,
1571*fcabbd87SPotnuri Bharat Teja 		0x353b4, 0x353b4,
1572*fcabbd87SPotnuri Bharat Teja 		0x35400, 0x35420,
1573*fcabbd87SPotnuri Bharat Teja 		0x35438, 0x3543c,
1574*fcabbd87SPotnuri Bharat Teja 		0x35480, 0x35480,
1575*fcabbd87SPotnuri Bharat Teja 		0x354a8, 0x354a8,
1576*fcabbd87SPotnuri Bharat Teja 		0x354b0, 0x354b4,
1577*fcabbd87SPotnuri Bharat Teja 		0x354c8, 0x354d4,
1578*fcabbd87SPotnuri Bharat Teja 		0x35a40, 0x35a4c,
1579*fcabbd87SPotnuri Bharat Teja 		0x35af0, 0x35b20,
1580*fcabbd87SPotnuri Bharat Teja 		0x35b38, 0x35b3c,
1581*fcabbd87SPotnuri Bharat Teja 		0x35b80, 0x35b80,
1582*fcabbd87SPotnuri Bharat Teja 		0x35ba8, 0x35ba8,
1583*fcabbd87SPotnuri Bharat Teja 		0x35bb0, 0x35bb4,
1584*fcabbd87SPotnuri Bharat Teja 		0x35bc8, 0x35bd4,
1585*fcabbd87SPotnuri Bharat Teja 		0x36140, 0x3618c,
1586*fcabbd87SPotnuri Bharat Teja 		0x361f0, 0x361f4,
1587*fcabbd87SPotnuri Bharat Teja 		0x36200, 0x36200,
1588*fcabbd87SPotnuri Bharat Teja 		0x36218, 0x36218,
1589*fcabbd87SPotnuri Bharat Teja 		0x36400, 0x36400,
1590*fcabbd87SPotnuri Bharat Teja 		0x36408, 0x3641c,
1591*fcabbd87SPotnuri Bharat Teja 		0x36618, 0x36620,
1592*fcabbd87SPotnuri Bharat Teja 		0x36664, 0x36664,
1593*fcabbd87SPotnuri Bharat Teja 		0x366a8, 0x366a8,
1594*fcabbd87SPotnuri Bharat Teja 		0x366ec, 0x366ec,
1595*fcabbd87SPotnuri Bharat Teja 		0x36a00, 0x36abc,
1596*fcabbd87SPotnuri Bharat Teja 		0x36b00, 0x36b18,
1597*fcabbd87SPotnuri Bharat Teja 		0x36b20, 0x36b38,
1598*fcabbd87SPotnuri Bharat Teja 		0x36b40, 0x36b58,
1599*fcabbd87SPotnuri Bharat Teja 		0x36b60, 0x36b78,
1600*fcabbd87SPotnuri Bharat Teja 		0x36c00, 0x36c00,
1601*fcabbd87SPotnuri Bharat Teja 		0x36c08, 0x36c3c,
1602*fcabbd87SPotnuri Bharat Teja 		0x37000, 0x3702c,
1603*fcabbd87SPotnuri Bharat Teja 		0x37034, 0x37050,
1604*fcabbd87SPotnuri Bharat Teja 		0x37058, 0x37058,
1605*fcabbd87SPotnuri Bharat Teja 		0x37060, 0x3708c,
1606*fcabbd87SPotnuri Bharat Teja 		0x3709c, 0x370ac,
1607*fcabbd87SPotnuri Bharat Teja 		0x370c0, 0x370c0,
1608*fcabbd87SPotnuri Bharat Teja 		0x370c8, 0x370d0,
1609*fcabbd87SPotnuri Bharat Teja 		0x370d8, 0x370e0,
1610*fcabbd87SPotnuri Bharat Teja 		0x370ec, 0x3712c,
1611*fcabbd87SPotnuri Bharat Teja 		0x37134, 0x37150,
1612*fcabbd87SPotnuri Bharat Teja 		0x37158, 0x37158,
1613*fcabbd87SPotnuri Bharat Teja 		0x37160, 0x3718c,
1614*fcabbd87SPotnuri Bharat Teja 		0x3719c, 0x371ac,
1615*fcabbd87SPotnuri Bharat Teja 		0x371c0, 0x371c0,
1616*fcabbd87SPotnuri Bharat Teja 		0x371c8, 0x371d0,
1617*fcabbd87SPotnuri Bharat Teja 		0x371d8, 0x371e0,
1618*fcabbd87SPotnuri Bharat Teja 		0x371ec, 0x37290,
1619*fcabbd87SPotnuri Bharat Teja 		0x37298, 0x372c4,
1620*fcabbd87SPotnuri Bharat Teja 		0x372e4, 0x37390,
1621*fcabbd87SPotnuri Bharat Teja 		0x37398, 0x373c4,
1622*fcabbd87SPotnuri Bharat Teja 		0x373e4, 0x3742c,
1623*fcabbd87SPotnuri Bharat Teja 		0x37434, 0x37450,
1624*fcabbd87SPotnuri Bharat Teja 		0x37458, 0x37458,
1625*fcabbd87SPotnuri Bharat Teja 		0x37460, 0x3748c,
1626*fcabbd87SPotnuri Bharat Teja 		0x3749c, 0x374ac,
1627*fcabbd87SPotnuri Bharat Teja 		0x374c0, 0x374c0,
1628*fcabbd87SPotnuri Bharat Teja 		0x374c8, 0x374d0,
1629*fcabbd87SPotnuri Bharat Teja 		0x374d8, 0x374e0,
1630*fcabbd87SPotnuri Bharat Teja 		0x374ec, 0x3752c,
1631*fcabbd87SPotnuri Bharat Teja 		0x37534, 0x37550,
1632*fcabbd87SPotnuri Bharat Teja 		0x37558, 0x37558,
1633*fcabbd87SPotnuri Bharat Teja 		0x37560, 0x3758c,
1634*fcabbd87SPotnuri Bharat Teja 		0x3759c, 0x375ac,
1635*fcabbd87SPotnuri Bharat Teja 		0x375c0, 0x375c0,
1636*fcabbd87SPotnuri Bharat Teja 		0x375c8, 0x375d0,
1637*fcabbd87SPotnuri Bharat Teja 		0x375d8, 0x375e0,
1638*fcabbd87SPotnuri Bharat Teja 		0x375ec, 0x37690,
1639*fcabbd87SPotnuri Bharat Teja 		0x37698, 0x376c4,
1640*fcabbd87SPotnuri Bharat Teja 		0x376e4, 0x37790,
1641*fcabbd87SPotnuri Bharat Teja 		0x37798, 0x377c4,
1642*fcabbd87SPotnuri Bharat Teja 		0x377e4, 0x377fc,
1643*fcabbd87SPotnuri Bharat Teja 		0x37814, 0x37814,
1644*fcabbd87SPotnuri Bharat Teja 		0x37854, 0x37868,
1645*fcabbd87SPotnuri Bharat Teja 		0x37880, 0x3788c,
1646*fcabbd87SPotnuri Bharat Teja 		0x378c0, 0x378d0,
1647*fcabbd87SPotnuri Bharat Teja 		0x378e8, 0x378ec,
1648*fcabbd87SPotnuri Bharat Teja 		0x37900, 0x3792c,
1649*fcabbd87SPotnuri Bharat Teja 		0x37934, 0x37950,
1650*fcabbd87SPotnuri Bharat Teja 		0x37958, 0x37958,
1651*fcabbd87SPotnuri Bharat Teja 		0x37960, 0x3798c,
1652*fcabbd87SPotnuri Bharat Teja 		0x3799c, 0x379ac,
1653*fcabbd87SPotnuri Bharat Teja 		0x379c0, 0x379c0,
1654*fcabbd87SPotnuri Bharat Teja 		0x379c8, 0x379d0,
1655*fcabbd87SPotnuri Bharat Teja 		0x379d8, 0x379e0,
1656*fcabbd87SPotnuri Bharat Teja 		0x379ec, 0x37a90,
1657*fcabbd87SPotnuri Bharat Teja 		0x37a98, 0x37ac4,
1658*fcabbd87SPotnuri Bharat Teja 		0x37ae4, 0x37b10,
1659*fcabbd87SPotnuri Bharat Teja 		0x37b24, 0x37b28,
1660*fcabbd87SPotnuri Bharat Teja 		0x37b38, 0x37b50,
1661*fcabbd87SPotnuri Bharat Teja 		0x37bf0, 0x37c10,
1662*fcabbd87SPotnuri Bharat Teja 		0x37c24, 0x37c28,
1663*fcabbd87SPotnuri Bharat Teja 		0x37c38, 0x37c50,
1664*fcabbd87SPotnuri Bharat Teja 		0x37cf0, 0x37cfc,
1665*fcabbd87SPotnuri Bharat Teja 		0x40040, 0x40040,
1666*fcabbd87SPotnuri Bharat Teja 		0x40080, 0x40084,
1667*fcabbd87SPotnuri Bharat Teja 		0x40100, 0x40100,
1668*fcabbd87SPotnuri Bharat Teja 		0x40140, 0x401bc,
1669*fcabbd87SPotnuri Bharat Teja 		0x40200, 0x40214,
1670*fcabbd87SPotnuri Bharat Teja 		0x40228, 0x40228,
1671*fcabbd87SPotnuri Bharat Teja 		0x40240, 0x40258,
1672*fcabbd87SPotnuri Bharat Teja 		0x40280, 0x40280,
1673*fcabbd87SPotnuri Bharat Teja 		0x40304, 0x40304,
1674*fcabbd87SPotnuri Bharat Teja 		0x40330, 0x4033c,
1675*fcabbd87SPotnuri Bharat Teja 		0x41304, 0x413c8,
1676*fcabbd87SPotnuri Bharat Teja 		0x413d0, 0x413dc,
1677*fcabbd87SPotnuri Bharat Teja 		0x413f0, 0x413f0,
1678*fcabbd87SPotnuri Bharat Teja 		0x41400, 0x4140c,
1679*fcabbd87SPotnuri Bharat Teja 		0x41414, 0x4141c,
1680*fcabbd87SPotnuri Bharat Teja 		0x41480, 0x414d0,
1681*fcabbd87SPotnuri Bharat Teja 		0x44000, 0x4407c,
1682*fcabbd87SPotnuri Bharat Teja 		0x440c0, 0x441ac,
1683*fcabbd87SPotnuri Bharat Teja 		0x441b4, 0x4427c,
1684*fcabbd87SPotnuri Bharat Teja 		0x442c0, 0x443ac,
1685*fcabbd87SPotnuri Bharat Teja 		0x443b4, 0x4447c,
1686*fcabbd87SPotnuri Bharat Teja 		0x444c0, 0x445ac,
1687*fcabbd87SPotnuri Bharat Teja 		0x445b4, 0x4467c,
1688*fcabbd87SPotnuri Bharat Teja 		0x446c0, 0x447ac,
1689*fcabbd87SPotnuri Bharat Teja 		0x447b4, 0x4487c,
1690*fcabbd87SPotnuri Bharat Teja 		0x448c0, 0x449ac,
1691*fcabbd87SPotnuri Bharat Teja 		0x449b4, 0x44a7c,
1692*fcabbd87SPotnuri Bharat Teja 		0x44ac0, 0x44bac,
1693*fcabbd87SPotnuri Bharat Teja 		0x44bb4, 0x44c7c,
1694*fcabbd87SPotnuri Bharat Teja 		0x44cc0, 0x44dac,
1695*fcabbd87SPotnuri Bharat Teja 		0x44db4, 0x44e7c,
1696*fcabbd87SPotnuri Bharat Teja 		0x44ec0, 0x44fac,
1697*fcabbd87SPotnuri Bharat Teja 		0x44fb4, 0x4507c,
1698*fcabbd87SPotnuri Bharat Teja 		0x450c0, 0x451ac,
1699*fcabbd87SPotnuri Bharat Teja 		0x451b4, 0x451fc,
1700*fcabbd87SPotnuri Bharat Teja 		0x45800, 0x45804,
1701*fcabbd87SPotnuri Bharat Teja 		0x45810, 0x45830,
1702*fcabbd87SPotnuri Bharat Teja 		0x45840, 0x45860,
1703*fcabbd87SPotnuri Bharat Teja 		0x45868, 0x45868,
1704*fcabbd87SPotnuri Bharat Teja 		0x45880, 0x45884,
1705*fcabbd87SPotnuri Bharat Teja 		0x458a0, 0x458b0,
1706*fcabbd87SPotnuri Bharat Teja 		0x45a00, 0x45a04,
1707*fcabbd87SPotnuri Bharat Teja 		0x45a10, 0x45a30,
1708*fcabbd87SPotnuri Bharat Teja 		0x45a40, 0x45a60,
1709*fcabbd87SPotnuri Bharat Teja 		0x45a68, 0x45a68,
1710*fcabbd87SPotnuri Bharat Teja 		0x45a80, 0x45a84,
1711*fcabbd87SPotnuri Bharat Teja 		0x45aa0, 0x45ab0,
1712*fcabbd87SPotnuri Bharat Teja 		0x460c0, 0x460e4,
1713*fcabbd87SPotnuri Bharat Teja 		0x47000, 0x4703c,
1714*fcabbd87SPotnuri Bharat Teja 		0x47044, 0x4708c,
1715*fcabbd87SPotnuri Bharat Teja 		0x47200, 0x47250,
1716*fcabbd87SPotnuri Bharat Teja 		0x47400, 0x47408,
1717*fcabbd87SPotnuri Bharat Teja 		0x47414, 0x47420,
1718*fcabbd87SPotnuri Bharat Teja 		0x47600, 0x47618,
1719*fcabbd87SPotnuri Bharat Teja 		0x47800, 0x47814,
1720*fcabbd87SPotnuri Bharat Teja 		0x47820, 0x4782c,
1721*fcabbd87SPotnuri Bharat Teja 		0x50000, 0x50084,
1722*fcabbd87SPotnuri Bharat Teja 		0x50090, 0x500cc,
1723*fcabbd87SPotnuri Bharat Teja 		0x50300, 0x50384,
1724*fcabbd87SPotnuri Bharat Teja 		0x50400, 0x50400,
1725*fcabbd87SPotnuri Bharat Teja 		0x50800, 0x50884,
1726*fcabbd87SPotnuri Bharat Teja 		0x50890, 0x508cc,
1727*fcabbd87SPotnuri Bharat Teja 		0x50b00, 0x50b84,
1728*fcabbd87SPotnuri Bharat Teja 		0x50c00, 0x50c00,
1729*fcabbd87SPotnuri Bharat Teja 		0x51000, 0x51020,
1730*fcabbd87SPotnuri Bharat Teja 		0x51028, 0x510b0,
1731*fcabbd87SPotnuri Bharat Teja 		0x51300, 0x51324,
1732*fcabbd87SPotnuri Bharat Teja 	};
1733*fcabbd87SPotnuri Bharat Teja 
173456b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &r, sizeof (r), flags) < 0)
173556b2bdd1SGireesh Nagabhushana 		return (EFAULT);
173656b2bdd1SGireesh Nagabhushana 
1737*fcabbd87SPotnuri Bharat Teja 	if (is_t4(sc->params.chip)) {
173856b2bdd1SGireesh Nagabhushana 		if (r.len > T4_REGDUMP_SIZE)
173956b2bdd1SGireesh Nagabhushana 			r.len = T4_REGDUMP_SIZE;
174056b2bdd1SGireesh Nagabhushana 		else if (r.len < T4_REGDUMP_SIZE)
1741*fcabbd87SPotnuri Bharat Teja 			return (ENOBUFS);
1742*fcabbd87SPotnuri Bharat Teja 	} else {
1743*fcabbd87SPotnuri Bharat Teja 		/* Regdump size is same for both T5 and T6 */
1744*fcabbd87SPotnuri Bharat Teja 		if (r.len > T5_REGDUMP_SIZE)
1745*fcabbd87SPotnuri Bharat Teja 			r.len = T5_REGDUMP_SIZE;
1746*fcabbd87SPotnuri Bharat Teja 		else if (r.len < T5_REGDUMP_SIZE)
1747*fcabbd87SPotnuri Bharat Teja 			return (ENOBUFS);
1748*fcabbd87SPotnuri Bharat Teja 	}
174956b2bdd1SGireesh Nagabhushana 
1750de483253SVishal Kulkarni 	r.version = mk_adap_vers(sc);
175156b2bdd1SGireesh Nagabhushana 
1752de483253SVishal Kulkarni 	if (is_t4(sc->params.chip)) {
1753de483253SVishal Kulkarni 		reg_ranges = &t4_reg_ranges[0];
1754de483253SVishal Kulkarni 		arr_size = ARRAY_SIZE(t4_reg_ranges);
1755de483253SVishal Kulkarni 		buf_size = T4_REGDUMP_SIZE;
1756*fcabbd87SPotnuri Bharat Teja 	} else if (is_t5(sc->params.chip)) {
1757de483253SVishal Kulkarni 		reg_ranges = &t5_reg_ranges[0];
1758de483253SVishal Kulkarni 		arr_size = ARRAY_SIZE(t5_reg_ranges);
1759de483253SVishal Kulkarni 		buf_size = T5_REGDUMP_SIZE;
1760*fcabbd87SPotnuri Bharat Teja 	} else {
1761*fcabbd87SPotnuri Bharat Teja 		reg_ranges = &t6_reg_ranges[0];
1762*fcabbd87SPotnuri Bharat Teja 		arr_size = ARRAY_SIZE(t6_reg_ranges);
1763*fcabbd87SPotnuri Bharat Teja 		buf_size = T6_REGDUMP_SIZE;
1764de483253SVishal Kulkarni 	}
1765de483253SVishal Kulkarni 
1766de483253SVishal Kulkarni 	buf = kmem_zalloc(buf_size, KM_SLEEP);
1767de483253SVishal Kulkarni 	if (buf == NULL)
1768de483253SVishal Kulkarni 		return (ENOMEM);
1769de483253SVishal Kulkarni 
1770de483253SVishal Kulkarni 	for (i = 0; i < arr_size; i += 2)
177156b2bdd1SGireesh Nagabhushana 		reg_block_dump(sc, buf, reg_ranges[i], reg_ranges[i + 1]);
177256b2bdd1SGireesh Nagabhushana 
1773*fcabbd87SPotnuri Bharat Teja 	/* Copyout device log buffer and then carrier buffer */
1774*fcabbd87SPotnuri Bharat Teja 	if (ddi_copyout(buf, (void *)((uintptr_t)data + sizeof(r)), r.len,
1775*fcabbd87SPotnuri Bharat Teja 			flags) < 0) {
177656b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
1777*fcabbd87SPotnuri Bharat Teja 		goto free;
1778*fcabbd87SPotnuri Bharat Teja 	}
177956b2bdd1SGireesh Nagabhushana 
1780*fcabbd87SPotnuri Bharat Teja 	if (ddi_copyout(&r, data, sizeof(r), flags) < 0)
178156b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
1782*fcabbd87SPotnuri Bharat Teja free:
1783de483253SVishal Kulkarni 	kmem_free(buf, buf_size);
178456b2bdd1SGireesh Nagabhushana 	return (rc);
178556b2bdd1SGireesh Nagabhushana }
178656b2bdd1SGireesh Nagabhushana 
178756b2bdd1SGireesh Nagabhushana static int
get_sge_context(struct adapter * sc,void * data,int flags)178856b2bdd1SGireesh Nagabhushana get_sge_context(struct adapter *sc, void *data, int flags)
178956b2bdd1SGireesh Nagabhushana {
179056b2bdd1SGireesh Nagabhushana 	struct t4_sge_context sgec;
179156b2bdd1SGireesh Nagabhushana 	uint32_t buff[SGE_CTXT_SIZE / 4];
179256b2bdd1SGireesh Nagabhushana 	int rc = 0;
179356b2bdd1SGireesh Nagabhushana 
179456b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &sgec, sizeof (sgec), flags) < 0) {
179556b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
179656b2bdd1SGireesh Nagabhushana 		goto _exit;
179756b2bdd1SGireesh Nagabhushana 	}
179856b2bdd1SGireesh Nagabhushana 
179956b2bdd1SGireesh Nagabhushana 	if (sgec.len < SGE_CTXT_SIZE || sgec.addr > M_CTXTQID) {
180056b2bdd1SGireesh Nagabhushana 		rc = EINVAL;
180156b2bdd1SGireesh Nagabhushana 		goto _exit;
180256b2bdd1SGireesh Nagabhushana 	}
180356b2bdd1SGireesh Nagabhushana 
180456b2bdd1SGireesh Nagabhushana 	if ((sgec.mem_id != T4_CTXT_EGRESS) && (sgec.mem_id != T4_CTXT_FLM) &&
180556b2bdd1SGireesh Nagabhushana 	    (sgec.mem_id != T4_CTXT_INGRESS)) {
180656b2bdd1SGireesh Nagabhushana 		rc = EINVAL;
180756b2bdd1SGireesh Nagabhushana 		goto _exit;
180856b2bdd1SGireesh Nagabhushana 	}
180956b2bdd1SGireesh Nagabhushana 
181056b2bdd1SGireesh Nagabhushana 	rc = (sc->flags & FW_OK) ?
181156b2bdd1SGireesh Nagabhushana 	    -t4_sge_ctxt_rd(sc, sc->mbox, sgec.addr, sgec.mem_id, buff) :
181256b2bdd1SGireesh Nagabhushana 	    -t4_sge_ctxt_rd_bd(sc, sgec.addr, sgec.mem_id, buff);
181356b2bdd1SGireesh Nagabhushana 	if (rc != 0)
181456b2bdd1SGireesh Nagabhushana 		goto _exit;
181556b2bdd1SGireesh Nagabhushana 
18163dde7c95SVishal Kulkarni 	sgec.version = 4 | (sc->params.chip << 10);
181756b2bdd1SGireesh Nagabhushana 
181856b2bdd1SGireesh Nagabhushana 	/* copyout data and then t4_sge_context */
181956b2bdd1SGireesh Nagabhushana 	rc = ddi_copyout(buff, sgec.data, sgec.len, flags);
182056b2bdd1SGireesh Nagabhushana 	if (rc == 0)
182156b2bdd1SGireesh Nagabhushana 		rc = ddi_copyout(&sgec, data, sizeof (sgec), flags);
182256b2bdd1SGireesh Nagabhushana 	/* if ddi_copyout fails, return EFAULT - for either of the two */
182356b2bdd1SGireesh Nagabhushana 	if (rc != 0)
182456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
182556b2bdd1SGireesh Nagabhushana 
182656b2bdd1SGireesh Nagabhushana _exit:
182756b2bdd1SGireesh Nagabhushana 	return (rc);
182856b2bdd1SGireesh Nagabhushana }
182956b2bdd1SGireesh Nagabhushana 
183056b2bdd1SGireesh Nagabhushana static int
read_tid_tab(struct adapter * sc,void * data,int flags)183156b2bdd1SGireesh Nagabhushana read_tid_tab(struct adapter *sc, void *data, int flags)
183256b2bdd1SGireesh Nagabhushana {
183356b2bdd1SGireesh Nagabhushana 	struct t4_tid_info t4tid;
183456b2bdd1SGireesh Nagabhushana 	uint32_t *buf, *b;
183556b2bdd1SGireesh Nagabhushana 	struct tid_info *t = &sc->tids;
183656b2bdd1SGireesh Nagabhushana 	int rc = 0;
183756b2bdd1SGireesh Nagabhushana 
183856b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4tid, sizeof (t4tid), flags) < 0) {
183956b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
184056b2bdd1SGireesh Nagabhushana 		goto _exit;
184156b2bdd1SGireesh Nagabhushana 	}
184256b2bdd1SGireesh Nagabhushana 
184356b2bdd1SGireesh Nagabhushana 	buf = b = kmem_zalloc(t4tid.len, KM_NOSLEEP);
184456b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
184556b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
184656b2bdd1SGireesh Nagabhushana 		goto _exit;
184756b2bdd1SGireesh Nagabhushana 	}
184856b2bdd1SGireesh Nagabhushana 
184956b2bdd1SGireesh Nagabhushana 	*b++ = t->tids_in_use;
185056b2bdd1SGireesh Nagabhushana 	*b++ = t->atids_in_use;
185156b2bdd1SGireesh Nagabhushana 	*b = t->stids_in_use;
185256b2bdd1SGireesh Nagabhushana 
185356b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(buf, t4tid.data, t4tid.len, flags) < 0)
185456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
185556b2bdd1SGireesh Nagabhushana 
185656b2bdd1SGireesh Nagabhushana 	kmem_free(buf, t4tid.len);
185756b2bdd1SGireesh Nagabhushana 
185856b2bdd1SGireesh Nagabhushana _exit:
185956b2bdd1SGireesh Nagabhushana 	return (rc);
186056b2bdd1SGireesh Nagabhushana }
186156b2bdd1SGireesh Nagabhushana 
1862de483253SVishal Kulkarni /*
1863de483253SVishal Kulkarni  * Verify that the memory range specified by the addr/len pair is valid and lies
1864de483253SVishal Kulkarni  * entirely within a single region (EDCx or MCx).
1865de483253SVishal Kulkarni  */
1866de483253SVishal Kulkarni static int
validate_mem_range(struct adapter * sc,uint32_t addr,int len)1867de483253SVishal Kulkarni validate_mem_range(struct adapter *sc, uint32_t addr, int len)
1868de483253SVishal Kulkarni {
1869de483253SVishal Kulkarni 	uint32_t em, addr_len, maddr, mlen;
1870de483253SVishal Kulkarni 
1871de483253SVishal Kulkarni 	/* Memory can only be accessed in naturally aligned 4 byte units */
1872de483253SVishal Kulkarni 	if (addr & 3 || len & 3 || len == 0)
1873de483253SVishal Kulkarni 		return (EINVAL);
1874de483253SVishal Kulkarni 
1875de483253SVishal Kulkarni 	/* Enabled memories */
1876de483253SVishal Kulkarni 	em = t4_read_reg(sc, A_MA_TARGET_MEM_ENABLE);
1877de483253SVishal Kulkarni 	if (em & F_EDRAM0_ENABLE) {
1878de483253SVishal Kulkarni 		addr_len = t4_read_reg(sc, A_MA_EDRAM0_BAR);
1879de483253SVishal Kulkarni 		maddr = G_EDRAM0_BASE(addr_len) << 20;
1880de483253SVishal Kulkarni 		mlen = G_EDRAM0_SIZE(addr_len) << 20;
1881de483253SVishal Kulkarni 		if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
1882de483253SVishal Kulkarni 				addr + len <= maddr + mlen)
1883de483253SVishal Kulkarni 			return (0);
1884de483253SVishal Kulkarni 	}
1885de483253SVishal Kulkarni 	if (em & F_EDRAM1_ENABLE) {
1886de483253SVishal Kulkarni 		addr_len = t4_read_reg(sc, A_MA_EDRAM1_BAR);
1887de483253SVishal Kulkarni 		maddr = G_EDRAM1_BASE(addr_len) << 20;
1888de483253SVishal Kulkarni 		mlen = G_EDRAM1_SIZE(addr_len) << 20;
1889de483253SVishal Kulkarni 		if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
1890de483253SVishal Kulkarni 				addr + len <= maddr + mlen)
1891de483253SVishal Kulkarni 			return (0);
1892de483253SVishal Kulkarni 	}
1893de483253SVishal Kulkarni 	if (em & F_EXT_MEM_ENABLE) {
1894de483253SVishal Kulkarni 		addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
1895de483253SVishal Kulkarni 		maddr = G_EXT_MEM_BASE(addr_len) << 20;
1896de483253SVishal Kulkarni 		mlen = G_EXT_MEM_SIZE(addr_len) << 20;
1897de483253SVishal Kulkarni 		if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
1898de483253SVishal Kulkarni 				addr + len <= maddr + mlen)
1899de483253SVishal Kulkarni 			return (0);
1900de483253SVishal Kulkarni 	}
1901de483253SVishal Kulkarni 	if (!is_t4(sc->params.chip) && em & F_EXT_MEM1_ENABLE) {
1902de483253SVishal Kulkarni 		addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY1_BAR);
1903de483253SVishal Kulkarni 		maddr = G_EXT_MEM1_BASE(addr_len) << 20;
1904de483253SVishal Kulkarni 		mlen = G_EXT_MEM1_SIZE(addr_len) << 20;
1905de483253SVishal Kulkarni 		if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
1906de483253SVishal Kulkarni 				addr + len <= maddr + mlen)
1907de483253SVishal Kulkarni 			return (0);
1908de483253SVishal Kulkarni 	}
1909de483253SVishal Kulkarni 
1910de483253SVishal Kulkarni 	return (EFAULT);
1911de483253SVishal Kulkarni }
1912de483253SVishal Kulkarni 
191356b2bdd1SGireesh Nagabhushana static int
read_card_mem(struct adapter * sc,void * data,int flags)191456b2bdd1SGireesh Nagabhushana read_card_mem(struct adapter *sc, void *data, int flags)
191556b2bdd1SGireesh Nagabhushana {
191656b2bdd1SGireesh Nagabhushana 	struct t4_mem_range mr;
1917de483253SVishal Kulkarni 	uint32_t addr, off, remaining, i, n;
191856b2bdd1SGireesh Nagabhushana 	uint32_t *buf, *b;
191956b2bdd1SGireesh Nagabhushana 	int rc = 0;
1920de483253SVishal Kulkarni 	uint32_t mw_base, mw_aperture;
1921de483253SVishal Kulkarni 	uint8_t *dst;
192256b2bdd1SGireesh Nagabhushana 
192356b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &mr, sizeof (mr), flags) < 0) {
192456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
192556b2bdd1SGireesh Nagabhushana 		goto _exit;
192656b2bdd1SGireesh Nagabhushana 	}
192756b2bdd1SGireesh Nagabhushana 
1928de483253SVishal Kulkarni 	rc = validate_mem_range(sc, mr.addr, mr.len);
1929de483253SVishal Kulkarni 	if (rc != 0)
1930de483253SVishal Kulkarni 		return (rc);
193156b2bdd1SGireesh Nagabhushana 
1932de483253SVishal Kulkarni 	memwin_info(sc, 2, &mw_base, &mw_aperture);
1933de483253SVishal Kulkarni 	buf = b = kmem_zalloc(min(mr.len, mw_aperture), KM_NOSLEEP);
193456b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
193556b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
193656b2bdd1SGireesh Nagabhushana 		goto _exit;
193756b2bdd1SGireesh Nagabhushana 	}
193856b2bdd1SGireesh Nagabhushana 
1939de483253SVishal Kulkarni 	addr = mr.addr;
194056b2bdd1SGireesh Nagabhushana 	remaining = mr.len;
1941de483253SVishal Kulkarni 	dst = (void *)mr.data;
194256b2bdd1SGireesh Nagabhushana 
194356b2bdd1SGireesh Nagabhushana 	while (remaining) {
1944de483253SVishal Kulkarni 		off = position_memwin(sc, 2, addr);
194556b2bdd1SGireesh Nagabhushana 
194656b2bdd1SGireesh Nagabhushana 		/* number of bytes that we'll copy in the inner loop */
1947de483253SVishal Kulkarni 		n = min(remaining, mw_aperture - off);
194856b2bdd1SGireesh Nagabhushana 
1949de483253SVishal Kulkarni 		for (i = 0; i < n; i += 4)
1950de483253SVishal Kulkarni 			*b++ = t4_read_reg(sc, mw_base + off + i);
1951de483253SVishal Kulkarni 		rc = ddi_copyout(buf, dst, n, flags);
1952de483253SVishal Kulkarni 		if (rc != 0) {
1953de483253SVishal Kulkarni 			rc = EFAULT;
1954de483253SVishal Kulkarni 			break;
195556b2bdd1SGireesh Nagabhushana 		}
195656b2bdd1SGireesh Nagabhushana 
1957de483253SVishal Kulkarni 		b = buf;
1958de483253SVishal Kulkarni 		dst += n;
1959de483253SVishal Kulkarni 		remaining -= n;
1960de483253SVishal Kulkarni 		addr += n;
1961de483253SVishal Kulkarni 	}
196256b2bdd1SGireesh Nagabhushana 
1963de483253SVishal Kulkarni 	kmem_free(buf, min(mr.len, mw_aperture));
196456b2bdd1SGireesh Nagabhushana _exit:
196556b2bdd1SGireesh Nagabhushana 	return (rc);
196656b2bdd1SGireesh Nagabhushana }
196756b2bdd1SGireesh Nagabhushana 
196856b2bdd1SGireesh Nagabhushana static int
get_devlog(struct adapter * sc,void * data,int flags)196956b2bdd1SGireesh Nagabhushana get_devlog(struct adapter *sc, void *data, int flags)
197056b2bdd1SGireesh Nagabhushana {
197156b2bdd1SGireesh Nagabhushana 	struct devlog_params *dparams = &sc->params.devlog;
197256b2bdd1SGireesh Nagabhushana 	struct fw_devlog_e *buf;
197356b2bdd1SGireesh Nagabhushana 	struct t4_devlog dl;
197456b2bdd1SGireesh Nagabhushana 	int rc = 0;
197556b2bdd1SGireesh Nagabhushana 
197656b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &dl, sizeof (dl), flags) < 0) {
197756b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
197856b2bdd1SGireesh Nagabhushana 		goto done;
197956b2bdd1SGireesh Nagabhushana 	}
198056b2bdd1SGireesh Nagabhushana 
198156b2bdd1SGireesh Nagabhushana 	if (dparams->start == 0) {
1982de483253SVishal Kulkarni 		dparams->memtype = 0;
1983de483253SVishal Kulkarni 		dparams->start = 0x84000;
1984de483253SVishal Kulkarni 		dparams->size = 32768;
198556b2bdd1SGireesh Nagabhushana 	}
198656b2bdd1SGireesh Nagabhushana 
198756b2bdd1SGireesh Nagabhushana 	if (dl.len < dparams->size) {
198856b2bdd1SGireesh Nagabhushana 		dl.len = dparams->size;
198956b2bdd1SGireesh Nagabhushana 		rc = ddi_copyout(&dl, data, sizeof (dl), flags);
199056b2bdd1SGireesh Nagabhushana 		/*
199156b2bdd1SGireesh Nagabhushana 		 * rc = 0 indicates copyout was successful, then return ENOBUFS
199256b2bdd1SGireesh Nagabhushana 		 * to indicate that the buffer size was not enough. Return of
199356b2bdd1SGireesh Nagabhushana 		 * EFAULT indicates that the copyout was not successful.
199456b2bdd1SGireesh Nagabhushana 		 */
199556b2bdd1SGireesh Nagabhushana 		rc = (rc == 0) ? ENOBUFS : EFAULT;
199656b2bdd1SGireesh Nagabhushana 		goto done;
199756b2bdd1SGireesh Nagabhushana 	}
199856b2bdd1SGireesh Nagabhushana 
199956b2bdd1SGireesh Nagabhushana 	buf = kmem_zalloc(dparams->size, KM_NOSLEEP);
200056b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
200156b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
200256b2bdd1SGireesh Nagabhushana 		goto done;
200356b2bdd1SGireesh Nagabhushana 	}
200456b2bdd1SGireesh Nagabhushana 
20053dde7c95SVishal Kulkarni 	rc = -t4_memory_rw(sc, sc->params.drv_memwin, dparams->memtype,
20063dde7c95SVishal Kulkarni 			   dparams->start, dparams->size, (void *)buf,
20073dde7c95SVishal Kulkarni 			   T4_MEMORY_READ);
200856b2bdd1SGireesh Nagabhushana 	if (rc != 0)
200956b2bdd1SGireesh Nagabhushana 		goto done1;
201056b2bdd1SGireesh Nagabhushana 
201156b2bdd1SGireesh Nagabhushana 	/* Copyout device log buffer and then carrier buffer */
20125a9113e7SVishal Kulkarni 	if (ddi_copyout(buf, (void *)((uintptr_t)data + sizeof(dl)), dl.len,
20135a9113e7SVishal Kulkarni 	    flags) < 0)
201456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
20155a9113e7SVishal Kulkarni 
20165a9113e7SVishal Kulkarni 	if (ddi_copyout(&dl, data, sizeof(dl), flags) < 0)
201756b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
201856b2bdd1SGireesh Nagabhushana 
201956b2bdd1SGireesh Nagabhushana done1:
202056b2bdd1SGireesh Nagabhushana 	kmem_free(buf, dparams->size);
202156b2bdd1SGireesh Nagabhushana 
202256b2bdd1SGireesh Nagabhushana done:
202356b2bdd1SGireesh Nagabhushana 	return (rc);
202456b2bdd1SGireesh Nagabhushana }
202556b2bdd1SGireesh Nagabhushana 
202656b2bdd1SGireesh Nagabhushana static int
read_cim_qcfg(struct adapter * sc,void * data,int flags)202756b2bdd1SGireesh Nagabhushana read_cim_qcfg(struct adapter *sc, void *data, int flags)
202856b2bdd1SGireesh Nagabhushana {
202956b2bdd1SGireesh Nagabhushana 	struct t4_cim_qcfg t4cimqcfg;
203056b2bdd1SGireesh Nagabhushana 	int rc = 0;
2031de483253SVishal Kulkarni 	unsigned int ibq_rdaddr, obq_rdaddr, nq;
203256b2bdd1SGireesh Nagabhushana 
203356b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4cimqcfg, sizeof (t4cimqcfg), flags) < 0) {
203456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
203556b2bdd1SGireesh Nagabhushana 		goto _exit;
203656b2bdd1SGireesh Nagabhushana 	}
203756b2bdd1SGireesh Nagabhushana 
2038de483253SVishal Kulkarni         if (is_t4(sc->params.chip)) {
2039de483253SVishal Kulkarni 		t4cimqcfg.num_obq = CIM_NUM_OBQ;
2040de483253SVishal Kulkarni                 ibq_rdaddr = A_UP_IBQ_0_RDADDR;
2041de483253SVishal Kulkarni                 obq_rdaddr = A_UP_OBQ_0_REALADDR;
2042de483253SVishal Kulkarni         } else {
2043de483253SVishal Kulkarni                 t4cimqcfg.num_obq = CIM_NUM_OBQ_T5;
2044de483253SVishal Kulkarni                 ibq_rdaddr = A_UP_IBQ_0_SHADOW_RDADDR;
2045de483253SVishal Kulkarni                 obq_rdaddr = A_UP_OBQ_0_SHADOW_REALADDR;
2046de483253SVishal Kulkarni         }
2047de483253SVishal Kulkarni 	nq = CIM_NUM_IBQ + t4cimqcfg.num_obq;
204856b2bdd1SGireesh Nagabhushana 
2049de483253SVishal Kulkarni 	rc = -t4_cim_read(sc, ibq_rdaddr, 4 * nq, t4cimqcfg.stat);
2050de483253SVishal Kulkarni 	if (rc == 0)
2051de483253SVishal Kulkarni 		rc = -t4_cim_read(sc, obq_rdaddr, 2 * t4cimqcfg.num_obq,
2052de483253SVishal Kulkarni 		    t4cimqcfg.obq_wr);
205356b2bdd1SGireesh Nagabhushana 	if (rc != 0)
205456b2bdd1SGireesh Nagabhushana 		return (rc);
205556b2bdd1SGireesh Nagabhushana 
205656b2bdd1SGireesh Nagabhushana 	t4_read_cimq_cfg(sc, t4cimqcfg.base, t4cimqcfg.size, t4cimqcfg.thres);
205756b2bdd1SGireesh Nagabhushana 
205856b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(&t4cimqcfg, data, sizeof (t4cimqcfg), flags) < 0)
205956b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
206056b2bdd1SGireesh Nagabhushana 
206156b2bdd1SGireesh Nagabhushana _exit:
206256b2bdd1SGireesh Nagabhushana 	return (rc);
206356b2bdd1SGireesh Nagabhushana }
206456b2bdd1SGireesh Nagabhushana 
206556b2bdd1SGireesh Nagabhushana static int
read_edc(struct adapter * sc,void * data,int flags)206656b2bdd1SGireesh Nagabhushana read_edc(struct adapter *sc, void *data, int flags)
206756b2bdd1SGireesh Nagabhushana {
206856b2bdd1SGireesh Nagabhushana 	struct t4_edc t4edc;
206956b2bdd1SGireesh Nagabhushana 	int rc = 0;
207056b2bdd1SGireesh Nagabhushana 	u32 count, pos = 0;
207156b2bdd1SGireesh Nagabhushana 	u32 memoffset;
207256b2bdd1SGireesh Nagabhushana 	__be32 *edc = NULL;
207356b2bdd1SGireesh Nagabhushana 
207456b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4edc, sizeof (t4edc), flags) < 0) {
207556b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
207656b2bdd1SGireesh Nagabhushana 		goto _exit;
207756b2bdd1SGireesh Nagabhushana 	}
207856b2bdd1SGireesh Nagabhushana 
207956b2bdd1SGireesh Nagabhushana 	if (t4edc.mem > 2)
208056b2bdd1SGireesh Nagabhushana 		goto _exit;
208156b2bdd1SGireesh Nagabhushana 
208256b2bdd1SGireesh Nagabhushana 	edc = kmem_zalloc(t4edc.len, KM_NOSLEEP);
208356b2bdd1SGireesh Nagabhushana 	if (edc == NULL) {
208456b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
208556b2bdd1SGireesh Nagabhushana 		goto _exit;
208656b2bdd1SGireesh Nagabhushana 	}
208756b2bdd1SGireesh Nagabhushana 	/*
208856b2bdd1SGireesh Nagabhushana 	 * Offset into the region of memory which is being accessed
208956b2bdd1SGireesh Nagabhushana 	 * MEM_EDC0 = 0
209056b2bdd1SGireesh Nagabhushana 	 * MEM_EDC1 = 1
209156b2bdd1SGireesh Nagabhushana 	 * MEM_MC   = 2
209256b2bdd1SGireesh Nagabhushana 	 */
209356b2bdd1SGireesh Nagabhushana 	memoffset = (t4edc.mem * (5 * 1024 * 1024));
209456b2bdd1SGireesh Nagabhushana 	count = t4edc.len;
209556b2bdd1SGireesh Nagabhushana 	pos = t4edc.pos;
209656b2bdd1SGireesh Nagabhushana 
209756b2bdd1SGireesh Nagabhushana 	while (count) {
209856b2bdd1SGireesh Nagabhushana 		u32 len;
209956b2bdd1SGireesh Nagabhushana 
21003dde7c95SVishal Kulkarni 		rc = t4_memory_rw(sc, sc->params.drv_memwin, memoffset, pos,
21013dde7c95SVishal Kulkarni 				  count, edc, T4_MEMORY_READ);
210256b2bdd1SGireesh Nagabhushana 		if (rc != 0) {
210356b2bdd1SGireesh Nagabhushana 			kmem_free(edc, t4edc.len);
210456b2bdd1SGireesh Nagabhushana 			goto _exit;
210556b2bdd1SGireesh Nagabhushana 		}
210656b2bdd1SGireesh Nagabhushana 
210756b2bdd1SGireesh Nagabhushana 		len = MEMWIN0_APERTURE;
210856b2bdd1SGireesh Nagabhushana 		pos += len;
210956b2bdd1SGireesh Nagabhushana 		count -= len;
211056b2bdd1SGireesh Nagabhushana 	}
211156b2bdd1SGireesh Nagabhushana 
211256b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(edc, t4edc.data, t4edc.len, flags) < 0)
211356b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
211456b2bdd1SGireesh Nagabhushana 
211556b2bdd1SGireesh Nagabhushana 	kmem_free(edc, t4edc.len);
211656b2bdd1SGireesh Nagabhushana _exit:
211756b2bdd1SGireesh Nagabhushana 	return (rc);
211856b2bdd1SGireesh Nagabhushana }
211956b2bdd1SGireesh Nagabhushana 
212056b2bdd1SGireesh Nagabhushana static int
read_cim_ibq(struct adapter * sc,void * data,int flags)212156b2bdd1SGireesh Nagabhushana read_cim_ibq(struct adapter *sc, void *data, int flags)
212256b2bdd1SGireesh Nagabhushana {
212356b2bdd1SGireesh Nagabhushana 	struct t4_ibq t4ibq;
212456b2bdd1SGireesh Nagabhushana 	int rc = 0;
212556b2bdd1SGireesh Nagabhushana 	__be64 *buf;
212656b2bdd1SGireesh Nagabhushana 
212756b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4ibq, sizeof (t4ibq), flags) < 0) {
212856b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
212956b2bdd1SGireesh Nagabhushana 		goto _exit;
213056b2bdd1SGireesh Nagabhushana 	}
213156b2bdd1SGireesh Nagabhushana 
213256b2bdd1SGireesh Nagabhushana 	buf = kmem_zalloc(t4ibq.len, KM_NOSLEEP);
213356b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
213456b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
213556b2bdd1SGireesh Nagabhushana 		goto _exit;
213656b2bdd1SGireesh Nagabhushana 	}
213756b2bdd1SGireesh Nagabhushana 
213856b2bdd1SGireesh Nagabhushana 	rc = t4_read_cim_ibq(sc, 3, (u32 *)buf, CIM_IBQ_SIZE * 4);
213956b2bdd1SGireesh Nagabhushana 	if (rc < 0) {
214056b2bdd1SGireesh Nagabhushana 		kmem_free(buf, t4ibq.len);
214156b2bdd1SGireesh Nagabhushana 		return (rc);
214256b2bdd1SGireesh Nagabhushana 	} else
214356b2bdd1SGireesh Nagabhushana 		rc = 0;
214456b2bdd1SGireesh Nagabhushana 
214556b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(buf, t4ibq.data, t4ibq.len, flags) < 0)
214656b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
214756b2bdd1SGireesh Nagabhushana 
214856b2bdd1SGireesh Nagabhushana 	kmem_free(buf, t4ibq.len);
214956b2bdd1SGireesh Nagabhushana 
215056b2bdd1SGireesh Nagabhushana _exit:
215156b2bdd1SGireesh Nagabhushana 	return (rc);
215256b2bdd1SGireesh Nagabhushana }
215356b2bdd1SGireesh Nagabhushana 
215456b2bdd1SGireesh Nagabhushana static int
read_cim_la(struct adapter * sc,void * data,int flags)215556b2bdd1SGireesh Nagabhushana read_cim_la(struct adapter *sc, void *data, int flags)
215656b2bdd1SGireesh Nagabhushana {
215756b2bdd1SGireesh Nagabhushana 	struct t4_cim_la t4cimla;
215856b2bdd1SGireesh Nagabhushana 	int rc = 0;
215956b2bdd1SGireesh Nagabhushana 	unsigned int cfg;
216056b2bdd1SGireesh Nagabhushana 	__be64 *buf;
216156b2bdd1SGireesh Nagabhushana 
216256b2bdd1SGireesh Nagabhushana 	rc = t4_cim_read(sc, A_UP_UP_DBG_LA_CFG, 1, &cfg);
216356b2bdd1SGireesh Nagabhushana 	if (rc != 0)
216456b2bdd1SGireesh Nagabhushana 		return (rc);
216556b2bdd1SGireesh Nagabhushana 
216656b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4cimla, sizeof (t4cimla), flags) < 0) {
216756b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
216856b2bdd1SGireesh Nagabhushana 		goto _exit;
216956b2bdd1SGireesh Nagabhushana 	}
217056b2bdd1SGireesh Nagabhushana 
217156b2bdd1SGireesh Nagabhushana 	buf = kmem_zalloc(t4cimla.len, KM_NOSLEEP);
217256b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
217356b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
217456b2bdd1SGireesh Nagabhushana 		goto _exit;
217556b2bdd1SGireesh Nagabhushana 	}
217656b2bdd1SGireesh Nagabhushana 
217756b2bdd1SGireesh Nagabhushana 	rc = t4_cim_read_la(sc, (u32 *)buf, NULL);
217856b2bdd1SGireesh Nagabhushana 	if (rc != 0) {
217956b2bdd1SGireesh Nagabhushana 		kmem_free(buf, t4cimla.len);
218056b2bdd1SGireesh Nagabhushana 		return (rc);
218156b2bdd1SGireesh Nagabhushana 	}
218256b2bdd1SGireesh Nagabhushana 
218356b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(buf, t4cimla.data, t4cimla.len, flags) < 0)
218456b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
218556b2bdd1SGireesh Nagabhushana 
218656b2bdd1SGireesh Nagabhushana 	kmem_free(buf, t4cimla.len);
218756b2bdd1SGireesh Nagabhushana 
218856b2bdd1SGireesh Nagabhushana _exit:
218956b2bdd1SGireesh Nagabhushana 	return (rc);
219056b2bdd1SGireesh Nagabhushana }
219156b2bdd1SGireesh Nagabhushana 
219256b2bdd1SGireesh Nagabhushana static int
read_mbox(struct adapter * sc,void * data,int flags)219356b2bdd1SGireesh Nagabhushana read_mbox(struct adapter *sc, void *data, int flags)
219456b2bdd1SGireesh Nagabhushana {
219556b2bdd1SGireesh Nagabhushana 	struct t4_mbox t4mbox;
219656b2bdd1SGireesh Nagabhushana 	int rc = 0, i;
219756b2bdd1SGireesh Nagabhushana 	__be64 *p, *buf;
219856b2bdd1SGireesh Nagabhushana 
219956b2bdd1SGireesh Nagabhushana 	u32 data_reg = PF_REG(4, A_CIM_PF_MAILBOX_DATA);
220056b2bdd1SGireesh Nagabhushana 
220156b2bdd1SGireesh Nagabhushana 	if (ddi_copyin(data, &t4mbox, sizeof (t4mbox), flags) < 0) {
220256b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
220356b2bdd1SGireesh Nagabhushana 		goto _exit;
220456b2bdd1SGireesh Nagabhushana 	}
220556b2bdd1SGireesh Nagabhushana 
220656b2bdd1SGireesh Nagabhushana 	buf = p = kmem_zalloc(t4mbox.len, KM_NOSLEEP);
220756b2bdd1SGireesh Nagabhushana 	if (buf == NULL) {
220856b2bdd1SGireesh Nagabhushana 		rc = ENOMEM;
220956b2bdd1SGireesh Nagabhushana 		goto _exit;
221056b2bdd1SGireesh Nagabhushana 	}
221156b2bdd1SGireesh Nagabhushana 
221256b2bdd1SGireesh Nagabhushana 	for (i = 0; i < t4mbox.len; i += 8, p++)
221356b2bdd1SGireesh Nagabhushana 		*p =  t4_read_reg64(sc, data_reg + i);
221456b2bdd1SGireesh Nagabhushana 
221556b2bdd1SGireesh Nagabhushana 	if (ddi_copyout(buf, t4mbox.data, t4mbox.len, flags) < 0)
221656b2bdd1SGireesh Nagabhushana 		rc = EFAULT;
221756b2bdd1SGireesh Nagabhushana 
221856b2bdd1SGireesh Nagabhushana 	kmem_free(buf, t4mbox.len);
221956b2bdd1SGireesh Nagabhushana 
222056b2bdd1SGireesh Nagabhushana _exit:
222156b2bdd1SGireesh Nagabhushana 	return (rc);
222256b2bdd1SGireesh Nagabhushana }
22235a9113e7SVishal Kulkarni 
22245a9113e7SVishal Kulkarni static int
flash_fw(struct adapter * sc,void * data,int flags)22255a9113e7SVishal Kulkarni flash_fw(struct adapter *sc, void *data, int flags)
22265a9113e7SVishal Kulkarni {
22275a9113e7SVishal Kulkarni 	unsigned int mbox = M_PCIE_FW_MASTER + 1;
22285a9113e7SVishal Kulkarni 	struct t4_ldfw fw;
22295a9113e7SVishal Kulkarni 	u8 *ptr = NULL;
22305a9113e7SVishal Kulkarni 	int rc = 0;
22315a9113e7SVishal Kulkarni 
22325a9113e7SVishal Kulkarni 	if (ddi_copyin(data, &fw, sizeof(struct t4_ldfw), flags) < 0)
22335a9113e7SVishal Kulkarni 		return EFAULT;
22345a9113e7SVishal Kulkarni 
22355a9113e7SVishal Kulkarni 	if (!fw.len)
22365a9113e7SVishal Kulkarni 		return EINVAL;
22375a9113e7SVishal Kulkarni 
22385a9113e7SVishal Kulkarni 	ptr = (u8 *)kmem_zalloc(fw.len, KM_NOSLEEP);
22395a9113e7SVishal Kulkarni 	if (ptr == NULL)
22405a9113e7SVishal Kulkarni 		return ENOMEM;
22415a9113e7SVishal Kulkarni 
22425a9113e7SVishal Kulkarni 	if (ddi_copyin((void *)((uintptr_t)data + sizeof(fw)), ptr, fw.len,
22435a9113e7SVishal Kulkarni 	    flags) < 0) {
22445a9113e7SVishal Kulkarni 		kmem_free(ptr, fw.len);
22455a9113e7SVishal Kulkarni 		return EFAULT;
22465a9113e7SVishal Kulkarni 	}
22475a9113e7SVishal Kulkarni 
22485a9113e7SVishal Kulkarni 	if (sc->flags & FULL_INIT_DONE)
22495a9113e7SVishal Kulkarni 		mbox = sc->mbox;
22505a9113e7SVishal Kulkarni 
22515a9113e7SVishal Kulkarni 	rc = -t4_fw_upgrade(sc, mbox, ptr, fw.len, true);
22522e7b048cSRobert Mustacchi 	ddi_ufm_update(sc->ufm_hdl);
22535a9113e7SVishal Kulkarni 
22545a9113e7SVishal Kulkarni 	kmem_free(ptr, fw.len);
22555a9113e7SVishal Kulkarni 
22565a9113e7SVishal Kulkarni 	return (rc);
22575a9113e7SVishal Kulkarni }
22587e6ad469SVishal Kulkarni 
22597e6ad469SVishal Kulkarni static int
get_cudbg(struct adapter * sc,void * data,int flags)22607e6ad469SVishal Kulkarni get_cudbg(struct adapter *sc, void *data, int flags)
22617e6ad469SVishal Kulkarni {
22627e6ad469SVishal Kulkarni 	struct t4_cudbg_dump dump;
22637e6ad469SVishal Kulkarni 	struct cudbg_init *cudbg;
22647e6ad469SVishal Kulkarni 	void *handle, *buf;
22657e6ad469SVishal Kulkarni 	int size;
22667e6ad469SVishal Kulkarni 	int rc = 0;
22677e6ad469SVishal Kulkarni 
22687e6ad469SVishal Kulkarni 	if (ddi_copyin(data, &dump, sizeof(struct t4_cudbg_dump), flags) < 0)
22697e6ad469SVishal Kulkarni 		return EFAULT;
22707e6ad469SVishal Kulkarni 
22717e6ad469SVishal Kulkarni 	size = dump.len;
22727e6ad469SVishal Kulkarni 	buf = (u8 *)kmem_zalloc(dump.len, KM_NOSLEEP);
22737e6ad469SVishal Kulkarni 	if (buf == NULL)
22747e6ad469SVishal Kulkarni 		return ENOMEM;
22757e6ad469SVishal Kulkarni 
22767e6ad469SVishal Kulkarni 	handle = cudbg_alloc_handle();
22777e6ad469SVishal Kulkarni 	if (handle == NULL) {
22787e6ad469SVishal Kulkarni 		rc = ENOMEM;
22797e6ad469SVishal Kulkarni 		goto free;
22807e6ad469SVishal Kulkarni 	}
22817e6ad469SVishal Kulkarni 
22827e6ad469SVishal Kulkarni 	cudbg = cudbg_get_init(handle);
22837e6ad469SVishal Kulkarni 	cudbg->adap = sc;
228441378e79SToomas Soome 	cudbg->print = cxgb_printf;
22857e6ad469SVishal Kulkarni 
22867e6ad469SVishal Kulkarni 	memcpy(cudbg->dbg_bitmap, dump.bitmap, sizeof(cudbg->dbg_bitmap));
22877e6ad469SVishal Kulkarni 
22887e6ad469SVishal Kulkarni 	rc = cudbg_collect(handle, buf, &dump.len);
22897e6ad469SVishal Kulkarni 	if (rc != 0) {
22907e6ad469SVishal Kulkarni 		cxgb_printf(sc->dip, CE_WARN, "cudbg collect failed\n");
22917e6ad469SVishal Kulkarni 		goto exit;
22927e6ad469SVishal Kulkarni 	}
22937e6ad469SVishal Kulkarni 
22947e6ad469SVishal Kulkarni 	if(ddi_copyout(buf, (void *)((uintptr_t)data + sizeof(dump)),
22957e6ad469SVishal Kulkarni 	   dump.len, flags) < 0){
22967e6ad469SVishal Kulkarni 		rc = EFAULT;
22977e6ad469SVishal Kulkarni 	}
22987e6ad469SVishal Kulkarni 
22997e6ad469SVishal Kulkarni 	if (ddi_copyout(&dump, data, sizeof(dump), flags) < 0){
23007e6ad469SVishal Kulkarni 		rc = EFAULT;
23017e6ad469SVishal Kulkarni 	}
23027e6ad469SVishal Kulkarni exit:
23037e6ad469SVishal Kulkarni 	cudbg_free_handle(handle);
23047e6ad469SVishal Kulkarni free:
23057e6ad469SVishal Kulkarni 	kmem_free(buf, size);
23067e6ad469SVishal Kulkarni 
23077e6ad469SVishal Kulkarni 	return rc;
23087e6ad469SVishal Kulkarni }
2309