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