18c2ecf20Sopenharmony_ci/***********************license start***************
28c2ecf20Sopenharmony_ci * Author: Cavium Networks
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Contact: support@caviumnetworks.com
58c2ecf20Sopenharmony_ci * This file is part of the OCTEON SDK
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Copyright (c) 2003-2009 Cavium Networks
88c2ecf20Sopenharmony_ci *
98c2ecf20Sopenharmony_ci * This file is free software; you can redistribute it and/or modify
108c2ecf20Sopenharmony_ci * it under the terms of the GNU General Public License, Version 2, as
118c2ecf20Sopenharmony_ci * published by the Free Software Foundation.
128c2ecf20Sopenharmony_ci *
138c2ecf20Sopenharmony_ci * This file is distributed in the hope that it will be useful, but
148c2ecf20Sopenharmony_ci * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
158c2ecf20Sopenharmony_ci * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
168c2ecf20Sopenharmony_ci * NONINFRINGEMENT.  See the GNU General Public License for more
178c2ecf20Sopenharmony_ci * details.
188c2ecf20Sopenharmony_ci *
198c2ecf20Sopenharmony_ci * You should have received a copy of the GNU General Public License
208c2ecf20Sopenharmony_ci * along with this file; if not, write to the Free Software
218c2ecf20Sopenharmony_ci * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
228c2ecf20Sopenharmony_ci * or visit http://www.gnu.org/licenses/.
238c2ecf20Sopenharmony_ci *
248c2ecf20Sopenharmony_ci * This file may also be available under a different license from Cavium.
258c2ecf20Sopenharmony_ci * Contact Cavium Networks for more information
268c2ecf20Sopenharmony_ci ***********************license end**************************************/
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci/**
298c2ecf20Sopenharmony_ci * Typedefs and defines for working with Octeon physical addresses.
308c2ecf20Sopenharmony_ci *
318c2ecf20Sopenharmony_ci */
328c2ecf20Sopenharmony_ci#ifndef __CVMX_ADDRESS_H__
338c2ecf20Sopenharmony_ci#define __CVMX_ADDRESS_H__
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#if 0
368c2ecf20Sopenharmony_citypedef enum {
378c2ecf20Sopenharmony_ci	CVMX_MIPS_SPACE_XKSEG = 3LL,
388c2ecf20Sopenharmony_ci	CVMX_MIPS_SPACE_XKPHYS = 2LL,
398c2ecf20Sopenharmony_ci	CVMX_MIPS_SPACE_XSSEG = 1LL,
408c2ecf20Sopenharmony_ci	CVMX_MIPS_SPACE_XUSEG = 0LL
418c2ecf20Sopenharmony_ci} cvmx_mips_space_t;
428c2ecf20Sopenharmony_ci#endif
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_citypedef enum {
458c2ecf20Sopenharmony_ci	CVMX_MIPS_XKSEG_SPACE_KSEG0 = 0LL,
468c2ecf20Sopenharmony_ci	CVMX_MIPS_XKSEG_SPACE_KSEG1 = 1LL,
478c2ecf20Sopenharmony_ci	CVMX_MIPS_XKSEG_SPACE_SSEG = 2LL,
488c2ecf20Sopenharmony_ci	CVMX_MIPS_XKSEG_SPACE_KSEG3 = 3LL
498c2ecf20Sopenharmony_ci} cvmx_mips_xkseg_space_t;
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci/* decodes <14:13> of a kseg3 window address */
528c2ecf20Sopenharmony_citypedef enum {
538c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_SCR = 0L,
548c2ecf20Sopenharmony_ci	/* see cvmx_add_win_dma_dec_t for further decode */
558c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA = 1L,
568c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_UNUSED = 2L,
578c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_UNUSED2 = 3L
588c2ecf20Sopenharmony_ci} cvmx_add_win_dec_t;
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci/* decode within DMA space */
618c2ecf20Sopenharmony_citypedef enum {
628c2ecf20Sopenharmony_ci	/*
638c2ecf20Sopenharmony_ci	 * Add store data to the write buffer entry, allocating it if
648c2ecf20Sopenharmony_ci	 * necessary.
658c2ecf20Sopenharmony_ci	 */
668c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA_ADD = 0L,
678c2ecf20Sopenharmony_ci	/* send out the write buffer entry to DRAM */
688c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA_SENDMEM = 1L,
698c2ecf20Sopenharmony_ci	/* store data must be normal DRAM memory space address in this case */
708c2ecf20Sopenharmony_ci	/* send out the write buffer entry as an IOBDMA command */
718c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA_SENDDMA = 2L,
728c2ecf20Sopenharmony_ci	/* see CVMX_ADD_WIN_DMA_SEND_DEC for data contents */
738c2ecf20Sopenharmony_ci	/* send out the write buffer entry as an IO write */
748c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA_SENDIO = 3L,
758c2ecf20Sopenharmony_ci	/* store data must be normal IO space address in this case */
768c2ecf20Sopenharmony_ci	/* send out a single-tick command on the NCB bus */
778c2ecf20Sopenharmony_ci	CVMX_ADD_WIN_DMA_SENDSINGLE = 4L,
788c2ecf20Sopenharmony_ci	/* no write buffer data needed/used */
798c2ecf20Sopenharmony_ci} cvmx_add_win_dma_dec_t;
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci/*
828c2ecf20Sopenharmony_ci *   Physical Address Decode
838c2ecf20Sopenharmony_ci *
848c2ecf20Sopenharmony_ci * Octeon-I HW never interprets this X (<39:36> reserved
858c2ecf20Sopenharmony_ci * for future expansion), software should set to 0.
868c2ecf20Sopenharmony_ci *
878c2ecf20Sopenharmony_ci *  - 0x0 XXX0 0000 0000 to	 DRAM	      Cached
888c2ecf20Sopenharmony_ci *  - 0x0 XXX0 0FFF FFFF
898c2ecf20Sopenharmony_ci *
908c2ecf20Sopenharmony_ci *  - 0x0 XXX0 1000 0000 to	 Boot Bus     Uncached	(Converted to 0x1 00X0 1000 0000
918c2ecf20Sopenharmony_ci *  - 0x0 XXX0 1FFF FFFF	 + EJTAG			   to 0x1 00X0 1FFF FFFF)
928c2ecf20Sopenharmony_ci *
938c2ecf20Sopenharmony_ci *  - 0x0 XXX0 2000 0000 to	 DRAM	      Cached
948c2ecf20Sopenharmony_ci *  - 0x0 XXXF FFFF FFFF
958c2ecf20Sopenharmony_ci *
968c2ecf20Sopenharmony_ci *  - 0x1 00X0 0000 0000 to	 Boot Bus     Uncached
978c2ecf20Sopenharmony_ci *  - 0x1 00XF FFFF FFFF
988c2ecf20Sopenharmony_ci *
998c2ecf20Sopenharmony_ci *  - 0x1 01X0 0000 0000 to	 Other NCB    Uncached
1008c2ecf20Sopenharmony_ci *  - 0x1 FFXF FFFF FFFF	 devices
1018c2ecf20Sopenharmony_ci *
1028c2ecf20Sopenharmony_ci * Decode of all Octeon addresses
1038c2ecf20Sopenharmony_ci */
1048c2ecf20Sopenharmony_citypedef union {
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci	uint64_t u64;
1078c2ecf20Sopenharmony_ci#ifdef __BIG_ENDIAN_BITFIELD
1088c2ecf20Sopenharmony_ci	/* mapped or unmapped virtual address */
1098c2ecf20Sopenharmony_ci	struct {
1108c2ecf20Sopenharmony_ci		uint64_t R:2;
1118c2ecf20Sopenharmony_ci		uint64_t offset:62;
1128c2ecf20Sopenharmony_ci	} sva;
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci	/* mapped USEG virtual addresses (typically) */
1158c2ecf20Sopenharmony_ci	struct {
1168c2ecf20Sopenharmony_ci		uint64_t zeroes:33;
1178c2ecf20Sopenharmony_ci		uint64_t offset:31;
1188c2ecf20Sopenharmony_ci	} suseg;
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci	/* mapped or unmapped virtual address */
1218c2ecf20Sopenharmony_ci	struct {
1228c2ecf20Sopenharmony_ci		uint64_t ones:33;
1238c2ecf20Sopenharmony_ci		uint64_t sp:2;
1248c2ecf20Sopenharmony_ci		uint64_t offset:29;
1258c2ecf20Sopenharmony_ci	} sxkseg;
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci	/*
1288c2ecf20Sopenharmony_ci	 * physical address accessed through xkphys unmapped virtual
1298c2ecf20Sopenharmony_ci	 * address.
1308c2ecf20Sopenharmony_ci	 */
1318c2ecf20Sopenharmony_ci	struct {
1328c2ecf20Sopenharmony_ci		uint64_t R:2;	/* CVMX_MIPS_SPACE_XKPHYS in this case */
1338c2ecf20Sopenharmony_ci		uint64_t cca:3; /* ignored by octeon */
1348c2ecf20Sopenharmony_ci		uint64_t mbz:10;
1358c2ecf20Sopenharmony_ci		uint64_t pa:49; /* physical address */
1368c2ecf20Sopenharmony_ci	} sxkphys;
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci	/* physical address */
1398c2ecf20Sopenharmony_ci	struct {
1408c2ecf20Sopenharmony_ci		uint64_t mbz:15;
1418c2ecf20Sopenharmony_ci		/* if set, the address is uncached and resides on MCB bus */
1428c2ecf20Sopenharmony_ci		uint64_t is_io:1;
1438c2ecf20Sopenharmony_ci		/*
1448c2ecf20Sopenharmony_ci		 * the hardware ignores this field when is_io==0, else
1458c2ecf20Sopenharmony_ci		 * device ID.
1468c2ecf20Sopenharmony_ci		 */
1478c2ecf20Sopenharmony_ci		uint64_t did:8;
1488c2ecf20Sopenharmony_ci		/* the hardware ignores <39:36> in Octeon I */
1498c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
1508c2ecf20Sopenharmony_ci		uint64_t offset:36;
1518c2ecf20Sopenharmony_ci	} sphys;
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci	/* physical mem address */
1548c2ecf20Sopenharmony_ci	struct {
1558c2ecf20Sopenharmony_ci		/* techically, <47:40> are dont-cares */
1568c2ecf20Sopenharmony_ci		uint64_t zeroes:24;
1578c2ecf20Sopenharmony_ci		/* the hardware ignores <39:36> in Octeon I */
1588c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
1598c2ecf20Sopenharmony_ci		uint64_t offset:36;
1608c2ecf20Sopenharmony_ci	} smem;
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci	/* physical IO address */
1638c2ecf20Sopenharmony_ci	struct {
1648c2ecf20Sopenharmony_ci		uint64_t mem_region:2;
1658c2ecf20Sopenharmony_ci		uint64_t mbz:13;
1668c2ecf20Sopenharmony_ci		/* 1 in this case */
1678c2ecf20Sopenharmony_ci		uint64_t is_io:1;
1688c2ecf20Sopenharmony_ci		/*
1698c2ecf20Sopenharmony_ci		 * The hardware ignores this field when is_io==0, else
1708c2ecf20Sopenharmony_ci		 * device ID.
1718c2ecf20Sopenharmony_ci		 */
1728c2ecf20Sopenharmony_ci		uint64_t did:8;
1738c2ecf20Sopenharmony_ci		/* the hardware ignores <39:36> in Octeon I */
1748c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
1758c2ecf20Sopenharmony_ci		uint64_t offset:36;
1768c2ecf20Sopenharmony_ci	} sio;
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci	/*
1798c2ecf20Sopenharmony_ci	 * Scratchpad virtual address - accessed through a window at
1808c2ecf20Sopenharmony_ci	 * the end of kseg3
1818c2ecf20Sopenharmony_ci	 */
1828c2ecf20Sopenharmony_ci	struct {
1838c2ecf20Sopenharmony_ci		uint64_t ones:49;
1848c2ecf20Sopenharmony_ci		/* CVMX_ADD_WIN_SCR (0) in this case */
1858c2ecf20Sopenharmony_ci		cvmx_add_win_dec_t csrdec:2;
1868c2ecf20Sopenharmony_ci		uint64_t addr:13;
1878c2ecf20Sopenharmony_ci	} sscr;
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci	/* there should only be stores to IOBDMA space, no loads */
1908c2ecf20Sopenharmony_ci	/*
1918c2ecf20Sopenharmony_ci	 * IOBDMA virtual address - accessed through a window at the
1928c2ecf20Sopenharmony_ci	 * end of kseg3
1938c2ecf20Sopenharmony_ci	 */
1948c2ecf20Sopenharmony_ci	struct {
1958c2ecf20Sopenharmony_ci		uint64_t ones:49;
1968c2ecf20Sopenharmony_ci		uint64_t csrdec:2;	/* CVMX_ADD_WIN_DMA (1) in this case */
1978c2ecf20Sopenharmony_ci		uint64_t unused2:3;
1988c2ecf20Sopenharmony_ci		uint64_t type:3;
1998c2ecf20Sopenharmony_ci		uint64_t addr:7;
2008c2ecf20Sopenharmony_ci	} sdma;
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci	struct {
2038c2ecf20Sopenharmony_ci		uint64_t didspace:24;
2048c2ecf20Sopenharmony_ci		uint64_t unused:40;
2058c2ecf20Sopenharmony_ci	} sfilldidspace;
2068c2ecf20Sopenharmony_ci#else
2078c2ecf20Sopenharmony_ci	struct {
2088c2ecf20Sopenharmony_ci		uint64_t offset:62;
2098c2ecf20Sopenharmony_ci		uint64_t R:2;
2108c2ecf20Sopenharmony_ci	} sva;
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci	struct {
2138c2ecf20Sopenharmony_ci		uint64_t offset:31;
2148c2ecf20Sopenharmony_ci		uint64_t zeroes:33;
2158c2ecf20Sopenharmony_ci	} suseg;
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci	struct {
2188c2ecf20Sopenharmony_ci		uint64_t offset:29;
2198c2ecf20Sopenharmony_ci		uint64_t sp:2;
2208c2ecf20Sopenharmony_ci		uint64_t ones:33;
2218c2ecf20Sopenharmony_ci	} sxkseg;
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci	struct {
2248c2ecf20Sopenharmony_ci		uint64_t pa:49;
2258c2ecf20Sopenharmony_ci		uint64_t mbz:10;
2268c2ecf20Sopenharmony_ci		uint64_t cca:3;
2278c2ecf20Sopenharmony_ci		uint64_t R:2;
2288c2ecf20Sopenharmony_ci	} sxkphys;
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci	struct {
2318c2ecf20Sopenharmony_ci		uint64_t offset:36;
2328c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
2338c2ecf20Sopenharmony_ci		uint64_t did:8;
2348c2ecf20Sopenharmony_ci		uint64_t is_io:1;
2358c2ecf20Sopenharmony_ci		uint64_t mbz:15;
2368c2ecf20Sopenharmony_ci	} sphys;
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci	struct {
2398c2ecf20Sopenharmony_ci		uint64_t offset:36;
2408c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
2418c2ecf20Sopenharmony_ci		uint64_t zeroes:24;
2428c2ecf20Sopenharmony_ci	} smem;
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ci	struct {
2458c2ecf20Sopenharmony_ci		uint64_t offset:36;
2468c2ecf20Sopenharmony_ci		uint64_t unaddr:4;
2478c2ecf20Sopenharmony_ci		uint64_t did:8;
2488c2ecf20Sopenharmony_ci		uint64_t is_io:1;
2498c2ecf20Sopenharmony_ci		uint64_t mbz:13;
2508c2ecf20Sopenharmony_ci		uint64_t mem_region:2;
2518c2ecf20Sopenharmony_ci	} sio;
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci	struct {
2548c2ecf20Sopenharmony_ci		uint64_t addr:13;
2558c2ecf20Sopenharmony_ci		cvmx_add_win_dec_t csrdec:2;
2568c2ecf20Sopenharmony_ci		uint64_t ones:49;
2578c2ecf20Sopenharmony_ci	} sscr;
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci	struct {
2608c2ecf20Sopenharmony_ci		uint64_t addr:7;
2618c2ecf20Sopenharmony_ci		uint64_t type:3;
2628c2ecf20Sopenharmony_ci		uint64_t unused2:3;
2638c2ecf20Sopenharmony_ci		uint64_t csrdec:2;
2648c2ecf20Sopenharmony_ci		uint64_t ones:49;
2658c2ecf20Sopenharmony_ci	} sdma;
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci	struct {
2688c2ecf20Sopenharmony_ci		uint64_t unused:40;
2698c2ecf20Sopenharmony_ci		uint64_t didspace:24;
2708c2ecf20Sopenharmony_ci	} sfilldidspace;
2718c2ecf20Sopenharmony_ci#endif
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci} cvmx_addr_t;
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci/* These macros for used by 32 bit applications */
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci#define CVMX_MIPS32_SPACE_KSEG0 1l
2788c2ecf20Sopenharmony_ci#define CVMX_ADD_SEG32(segment, add) \
2798c2ecf20Sopenharmony_ci	(((int32_t)segment << 31) | (int32_t)(add))
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ci/*
2828c2ecf20Sopenharmony_ci * Currently all IOs are performed using XKPHYS addressing. Linux uses
2838c2ecf20Sopenharmony_ci * the CvmMemCtl register to enable XKPHYS addressing to IO space from
2848c2ecf20Sopenharmony_ci * user mode.  Future OSes may need to change the upper bits of IO
2858c2ecf20Sopenharmony_ci * addresses. The following define controls the upper two bits for all
2868c2ecf20Sopenharmony_ci * IO addresses generated by the simple executive library.
2878c2ecf20Sopenharmony_ci */
2888c2ecf20Sopenharmony_ci#define CVMX_IO_SEG CVMX_MIPS_SPACE_XKPHYS
2898c2ecf20Sopenharmony_ci
2908c2ecf20Sopenharmony_ci/* These macros simplify the process of creating common IO addresses */
2918c2ecf20Sopenharmony_ci#define CVMX_ADD_SEG(segment, add) ((((uint64_t)segment) << 62) | (add))
2928c2ecf20Sopenharmony_ci#ifndef CVMX_ADD_IO_SEG
2938c2ecf20Sopenharmony_ci#define CVMX_ADD_IO_SEG(add) CVMX_ADD_SEG(CVMX_IO_SEG, (add))
2948c2ecf20Sopenharmony_ci#endif
2958c2ecf20Sopenharmony_ci#define CVMX_ADDR_DIDSPACE(did) (((CVMX_IO_SEG) << 22) | ((1ULL) << 8) | (did))
2968c2ecf20Sopenharmony_ci#define CVMX_ADDR_DID(did) (CVMX_ADDR_DIDSPACE(did) << 40)
2978c2ecf20Sopenharmony_ci#define CVMX_FULL_DID(did, subdid) (((did) << 3) | (subdid))
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci  /* from include/ncb_rsl_id.v */
3008c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_MIS 0ULL	/* misc stuff */
3018c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_GMX0 1ULL
3028c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_GMX1 2ULL
3038c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PCI 3ULL
3048c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_KEY 4ULL
3058c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_FPA 5ULL
3068c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_DFA 6ULL
3078c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_ZIP 7ULL
3088c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_RNG 8ULL
3098c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_IPD 9ULL
3108c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PKT 10ULL
3118c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TIM 11ULL
3128c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG 12ULL
3138c2ecf20Sopenharmony_ci  /* the rest are not on the IO bus */
3148c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_L2C 16ULL
3158c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_LMC 17ULL
3168c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_SPX0 18ULL
3178c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_SPX1 19ULL
3188c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PIP 20ULL
3198c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_ASX0 22ULL
3208c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_ASX1 23ULL
3218c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_IOB 30ULL
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PKT_SEND	    CVMX_FULL_DID(CVMX_OCT_DID_PKT, 2ULL)
3248c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_SWTAG	    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 0ULL)
3258c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_TAG1	    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 1ULL)
3268c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_TAG2	    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 2ULL)
3278c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_TAG3	    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 3ULL)
3288c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_NULL_RD    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 4ULL)
3298c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TAG_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_TAG, 7ULL)
3308c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_FAU_FAI	    CVMX_FULL_DID(CVMX_OCT_DID_IOB, 0ULL)
3318c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_TIM_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_TIM, 0ULL)
3328c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_KEY_RW	    CVMX_FULL_DID(CVMX_OCT_DID_KEY, 0ULL)
3338c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PCI_6	    CVMX_FULL_DID(CVMX_OCT_DID_PCI, 6ULL)
3348c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_MIS_BOO	    CVMX_FULL_DID(CVMX_OCT_DID_MIS, 0ULL)
3358c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_PCI_RML	    CVMX_FULL_DID(CVMX_OCT_DID_PCI, 0ULL)
3368c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_IPD_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_IPD, 7ULL)
3378c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_DFA_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_DFA, 7ULL)
3388c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_MIS_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_MIS, 7ULL)
3398c2ecf20Sopenharmony_ci#define CVMX_OCT_DID_ZIP_CSR	    CVMX_FULL_DID(CVMX_OCT_DID_ZIP, 0ULL)
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ci#endif /* __CVMX_ADDRESS_H__ */
342