18c2ecf20Sopenharmony_ci/***********************license start************************************ 28c2ecf20Sopenharmony_ci * Copyright (c) 2003-2017 Cavium, Inc. 38c2ecf20Sopenharmony_ci * All rights reserved. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * License: one of 'Cavium License' or 'GNU General Public License Version 2' 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * This file is provided under the terms of the Cavium License (see below) 88c2ecf20Sopenharmony_ci * or under the terms of GNU General Public License, Version 2, as 98c2ecf20Sopenharmony_ci * published by the Free Software Foundation. When using or redistributing 108c2ecf20Sopenharmony_ci * this file, you may do so under either license. 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci * Cavium License: Redistribution and use in source and binary forms, with 138c2ecf20Sopenharmony_ci * or without modification, are permitted provided that the following 148c2ecf20Sopenharmony_ci * conditions are met: 158c2ecf20Sopenharmony_ci * 168c2ecf20Sopenharmony_ci * * Redistributions of source code must retain the above copyright 178c2ecf20Sopenharmony_ci * notice, this list of conditions and the following disclaimer. 188c2ecf20Sopenharmony_ci * 198c2ecf20Sopenharmony_ci * * Redistributions in binary form must reproduce the above 208c2ecf20Sopenharmony_ci * copyright notice, this list of conditions and the following 218c2ecf20Sopenharmony_ci * disclaimer in the documentation and/or other materials provided 228c2ecf20Sopenharmony_ci * with the distribution. 238c2ecf20Sopenharmony_ci * 248c2ecf20Sopenharmony_ci * * Neither the name of Cavium Inc. nor the names of its contributors may be 258c2ecf20Sopenharmony_ci * used to endorse or promote products derived from this software without 268c2ecf20Sopenharmony_ci * specific prior written permission. 278c2ecf20Sopenharmony_ci * 288c2ecf20Sopenharmony_ci * This Software, including technical data, may be subject to U.S. export 298c2ecf20Sopenharmony_ci * control laws, including the U.S. Export Administration Act and its 308c2ecf20Sopenharmony_ci * associated regulations, and may be subject to export or import 318c2ecf20Sopenharmony_ci * regulations in other countries. 328c2ecf20Sopenharmony_ci * 338c2ecf20Sopenharmony_ci * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 348c2ecf20Sopenharmony_ci * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS 358c2ecf20Sopenharmony_ci * OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH 368c2ecf20Sopenharmony_ci * RESPECT TO THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY 378c2ecf20Sopenharmony_ci * REPRESENTATION OR DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT 388c2ecf20Sopenharmony_ci * DEFECTS, AND CAVIUM SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) 398c2ecf20Sopenharmony_ci * WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A 408c2ecf20Sopenharmony_ci * PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET 418c2ecf20Sopenharmony_ci * ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION. THE 428c2ecf20Sopenharmony_ci * ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE LIES 438c2ecf20Sopenharmony_ci * WITH YOU. 448c2ecf20Sopenharmony_ci ***********************license end**************************************/ 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci#ifndef __ZIP_REGS_H__ 478c2ecf20Sopenharmony_ci#define __ZIP_REGS_H__ 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci/* 508c2ecf20Sopenharmony_ci * Configuration and status register (CSR) address and type definitions for 518c2ecf20Sopenharmony_ci * Cavium ZIP. 528c2ecf20Sopenharmony_ci */ 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci#include <linux/kern_levels.h> 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci/* ZIP invocation result completion status codes */ 578c2ecf20Sopenharmony_ci#define ZIP_CMD_NOTDONE 0x0 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci/* Successful completion. */ 608c2ecf20Sopenharmony_ci#define ZIP_CMD_SUCCESS 0x1 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci/* Output truncated */ 638c2ecf20Sopenharmony_ci#define ZIP_CMD_DTRUNC 0x2 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci/* Dynamic Stop */ 668c2ecf20Sopenharmony_ci#define ZIP_CMD_DYNAMIC_STOP 0x3 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci/* Uncompress ran out of input data when IWORD0[EF] was set */ 698c2ecf20Sopenharmony_ci#define ZIP_CMD_ITRUNC 0x4 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci/* Uncompress found the reserved block type 3 */ 728c2ecf20Sopenharmony_ci#define ZIP_CMD_RBLOCK 0x5 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci/* 758c2ecf20Sopenharmony_ci * Uncompress found LEN != ZIP_CMD_NLEN in an uncompressed block in the input. 768c2ecf20Sopenharmony_ci */ 778c2ecf20Sopenharmony_ci#define ZIP_CMD_NLEN 0x6 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci/* Uncompress found a bad code in the main Huffman codes. */ 808c2ecf20Sopenharmony_ci#define ZIP_CMD_BADCODE 0x7 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci/* Uncompress found a bad code in the 19 Huffman codes encoding lengths. */ 838c2ecf20Sopenharmony_ci#define ZIP_CMD_BADCODE2 0x8 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci/* Compress found a zero-length input. */ 868c2ecf20Sopenharmony_ci#define ZIP_CMD_ZERO_LEN 0x9 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci/* The compress or decompress encountered an internal parity error. */ 898c2ecf20Sopenharmony_ci#define ZIP_CMD_PARITY 0xA 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci/* 928c2ecf20Sopenharmony_ci * Uncompress found a string identifier that precedes the uncompressed data and 938c2ecf20Sopenharmony_ci * decompression history. 948c2ecf20Sopenharmony_ci */ 958c2ecf20Sopenharmony_ci#define ZIP_CMD_FATAL 0xB 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci/** 988c2ecf20Sopenharmony_ci * enum zip_int_vec_e - ZIP MSI-X Vector Enumeration, enumerates the MSI-X 998c2ecf20Sopenharmony_ci * interrupt vectors. 1008c2ecf20Sopenharmony_ci */ 1018c2ecf20Sopenharmony_cienum zip_int_vec_e { 1028c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_ECCE = 0x10, 1038c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_FIFE = 0x11, 1048c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE0_DONE = 0x0, 1058c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE0_ERR = 0x8, 1068c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE1_DONE = 0x1, 1078c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE1_ERR = 0x9, 1088c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE2_DONE = 0x2, 1098c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE2_ERR = 0xa, 1108c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE3_DONE = 0x3, 1118c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE3_ERR = 0xb, 1128c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE4_DONE = 0x4, 1138c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE4_ERR = 0xc, 1148c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE5_DONE = 0x5, 1158c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE5_ERR = 0xd, 1168c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE6_DONE = 0x6, 1178c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE6_ERR = 0xe, 1188c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE7_DONE = 0x7, 1198c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_QUE7_ERR = 0xf, 1208c2ecf20Sopenharmony_ci ZIP_INT_VEC_E_ENUM_LAST = 0x12, 1218c2ecf20Sopenharmony_ci}; 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci/** 1248c2ecf20Sopenharmony_ci * union zip_zptr_addr_s - ZIP Generic Pointer Structure for ADDR. 1258c2ecf20Sopenharmony_ci * 1268c2ecf20Sopenharmony_ci * It is the generic format of pointers in ZIP_INST_S. 1278c2ecf20Sopenharmony_ci */ 1288c2ecf20Sopenharmony_ciunion zip_zptr_addr_s { 1298c2ecf20Sopenharmony_ci u64 u_reg64; 1308c2ecf20Sopenharmony_ci struct { 1318c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 1328c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 1338c2ecf20Sopenharmony_ci u64 addr : 49; 1348c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 1358c2ecf20Sopenharmony_ci u64 addr : 49; 1368c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 1378c2ecf20Sopenharmony_ci#endif 1388c2ecf20Sopenharmony_ci } s; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci}; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci/** 1438c2ecf20Sopenharmony_ci * union zip_zptr_ctl_s - ZIP Generic Pointer Structure for CTL. 1448c2ecf20Sopenharmony_ci * 1458c2ecf20Sopenharmony_ci * It is the generic format of pointers in ZIP_INST_S. 1468c2ecf20Sopenharmony_ci */ 1478c2ecf20Sopenharmony_ciunion zip_zptr_ctl_s { 1488c2ecf20Sopenharmony_ci u64 u_reg64; 1498c2ecf20Sopenharmony_ci struct { 1508c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 1518c2ecf20Sopenharmony_ci u64 reserved_112_127 : 16; 1528c2ecf20Sopenharmony_ci u64 length : 16; 1538c2ecf20Sopenharmony_ci u64 reserved_67_95 : 29; 1548c2ecf20Sopenharmony_ci u64 fw : 1; 1558c2ecf20Sopenharmony_ci u64 nc : 1; 1568c2ecf20Sopenharmony_ci u64 data_be : 1; 1578c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 1588c2ecf20Sopenharmony_ci u64 data_be : 1; 1598c2ecf20Sopenharmony_ci u64 nc : 1; 1608c2ecf20Sopenharmony_ci u64 fw : 1; 1618c2ecf20Sopenharmony_ci u64 reserved_67_95 : 29; 1628c2ecf20Sopenharmony_ci u64 length : 16; 1638c2ecf20Sopenharmony_ci u64 reserved_112_127 : 16; 1648c2ecf20Sopenharmony_ci#endif 1658c2ecf20Sopenharmony_ci } s; 1668c2ecf20Sopenharmony_ci}; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci/** 1698c2ecf20Sopenharmony_ci * union zip_inst_s - ZIP Instruction Structure. 1708c2ecf20Sopenharmony_ci * Each ZIP instruction has 16 words (they are called IWORD0 to IWORD15 within 1718c2ecf20Sopenharmony_ci * the structure). 1728c2ecf20Sopenharmony_ci */ 1738c2ecf20Sopenharmony_ciunion zip_inst_s { 1748c2ecf20Sopenharmony_ci u64 u_reg64[16]; 1758c2ecf20Sopenharmony_ci struct { 1768c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 1778c2ecf20Sopenharmony_ci u64 doneint : 1; 1788c2ecf20Sopenharmony_ci u64 reserved_56_62 : 7; 1798c2ecf20Sopenharmony_ci u64 totaloutputlength : 24; 1808c2ecf20Sopenharmony_ci u64 reserved_27_31 : 5; 1818c2ecf20Sopenharmony_ci u64 exn : 3; 1828c2ecf20Sopenharmony_ci u64 reserved_23_23 : 1; 1838c2ecf20Sopenharmony_ci u64 exbits : 7; 1848c2ecf20Sopenharmony_ci u64 reserved_12_15 : 4; 1858c2ecf20Sopenharmony_ci u64 sf : 1; 1868c2ecf20Sopenharmony_ci u64 ss : 2; 1878c2ecf20Sopenharmony_ci u64 cc : 2; 1888c2ecf20Sopenharmony_ci u64 ef : 1; 1898c2ecf20Sopenharmony_ci u64 bf : 1; 1908c2ecf20Sopenharmony_ci u64 ce : 1; 1918c2ecf20Sopenharmony_ci u64 reserved_3_3 : 1; 1928c2ecf20Sopenharmony_ci u64 ds : 1; 1938c2ecf20Sopenharmony_ci u64 dg : 1; 1948c2ecf20Sopenharmony_ci u64 hg : 1; 1958c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 1968c2ecf20Sopenharmony_ci u64 hg : 1; 1978c2ecf20Sopenharmony_ci u64 dg : 1; 1988c2ecf20Sopenharmony_ci u64 ds : 1; 1998c2ecf20Sopenharmony_ci u64 reserved_3_3 : 1; 2008c2ecf20Sopenharmony_ci u64 ce : 1; 2018c2ecf20Sopenharmony_ci u64 bf : 1; 2028c2ecf20Sopenharmony_ci u64 ef : 1; 2038c2ecf20Sopenharmony_ci u64 cc : 2; 2048c2ecf20Sopenharmony_ci u64 ss : 2; 2058c2ecf20Sopenharmony_ci u64 sf : 1; 2068c2ecf20Sopenharmony_ci u64 reserved_12_15 : 4; 2078c2ecf20Sopenharmony_ci u64 exbits : 7; 2088c2ecf20Sopenharmony_ci u64 reserved_23_23 : 1; 2098c2ecf20Sopenharmony_ci u64 exn : 3; 2108c2ecf20Sopenharmony_ci u64 reserved_27_31 : 5; 2118c2ecf20Sopenharmony_ci u64 totaloutputlength : 24; 2128c2ecf20Sopenharmony_ci u64 reserved_56_62 : 7; 2138c2ecf20Sopenharmony_ci u64 doneint : 1; 2148c2ecf20Sopenharmony_ci#endif 2158c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2168c2ecf20Sopenharmony_ci u64 historylength : 16; 2178c2ecf20Sopenharmony_ci u64 reserved_96_111 : 16; 2188c2ecf20Sopenharmony_ci u64 adlercrc32 : 32; 2198c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2208c2ecf20Sopenharmony_ci u64 adlercrc32 : 32; 2218c2ecf20Sopenharmony_ci u64 reserved_96_111 : 16; 2228c2ecf20Sopenharmony_ci u64 historylength : 16; 2238c2ecf20Sopenharmony_ci#endif 2248c2ecf20Sopenharmony_ci union zip_zptr_addr_s ctx_ptr_addr; 2258c2ecf20Sopenharmony_ci union zip_zptr_ctl_s ctx_ptr_ctl; 2268c2ecf20Sopenharmony_ci union zip_zptr_addr_s his_ptr_addr; 2278c2ecf20Sopenharmony_ci union zip_zptr_ctl_s his_ptr_ctl; 2288c2ecf20Sopenharmony_ci union zip_zptr_addr_s inp_ptr_addr; 2298c2ecf20Sopenharmony_ci union zip_zptr_ctl_s inp_ptr_ctl; 2308c2ecf20Sopenharmony_ci union zip_zptr_addr_s out_ptr_addr; 2318c2ecf20Sopenharmony_ci union zip_zptr_ctl_s out_ptr_ctl; 2328c2ecf20Sopenharmony_ci union zip_zptr_addr_s res_ptr_addr; 2338c2ecf20Sopenharmony_ci union zip_zptr_ctl_s res_ptr_ctl; 2348c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2358c2ecf20Sopenharmony_ci u64 reserved_817_831 : 15; 2368c2ecf20Sopenharmony_ci u64 wq_ptr : 49; 2378c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2388c2ecf20Sopenharmony_ci u64 wq_ptr : 49; 2398c2ecf20Sopenharmony_ci u64 reserved_817_831 : 15; 2408c2ecf20Sopenharmony_ci#endif 2418c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2428c2ecf20Sopenharmony_ci u64 reserved_882_895 : 14; 2438c2ecf20Sopenharmony_ci u64 tt : 2; 2448c2ecf20Sopenharmony_ci u64 reserved_874_879 : 6; 2458c2ecf20Sopenharmony_ci u64 grp : 10; 2468c2ecf20Sopenharmony_ci u64 tag : 32; 2478c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2488c2ecf20Sopenharmony_ci u64 tag : 32; 2498c2ecf20Sopenharmony_ci u64 grp : 10; 2508c2ecf20Sopenharmony_ci u64 reserved_874_879 : 6; 2518c2ecf20Sopenharmony_ci u64 tt : 2; 2528c2ecf20Sopenharmony_ci u64 reserved_882_895 : 14; 2538c2ecf20Sopenharmony_ci#endif 2548c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2558c2ecf20Sopenharmony_ci u64 reserved_896_959 : 64; 2568c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2578c2ecf20Sopenharmony_ci u64 reserved_896_959 : 64; 2588c2ecf20Sopenharmony_ci#endif 2598c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2608c2ecf20Sopenharmony_ci u64 reserved_960_1023 : 64; 2618c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2628c2ecf20Sopenharmony_ci u64 reserved_960_1023 : 64; 2638c2ecf20Sopenharmony_ci#endif 2648c2ecf20Sopenharmony_ci } s; 2658c2ecf20Sopenharmony_ci}; 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci/** 2688c2ecf20Sopenharmony_ci * union zip_nptr_s - ZIP Instruction Next-Chunk-Buffer Pointer (NPTR) 2698c2ecf20Sopenharmony_ci * Structure 2708c2ecf20Sopenharmony_ci * 2718c2ecf20Sopenharmony_ci * ZIP_NPTR structure is used to chain all the zip instruction buffers 2728c2ecf20Sopenharmony_ci * together. ZIP instruction buffers are managed (allocated and released) by 2738c2ecf20Sopenharmony_ci * the software. 2748c2ecf20Sopenharmony_ci */ 2758c2ecf20Sopenharmony_ciunion zip_nptr_s { 2768c2ecf20Sopenharmony_ci u64 u_reg64; 2778c2ecf20Sopenharmony_ci struct { 2788c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2798c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 2808c2ecf20Sopenharmony_ci u64 addr : 49; 2818c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 2828c2ecf20Sopenharmony_ci u64 addr : 49; 2838c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 2848c2ecf20Sopenharmony_ci#endif 2858c2ecf20Sopenharmony_ci } s; 2868c2ecf20Sopenharmony_ci}; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci/** 2898c2ecf20Sopenharmony_ci * union zip_zptr_s - ZIP Generic Pointer Structure. 2908c2ecf20Sopenharmony_ci * 2918c2ecf20Sopenharmony_ci * It is the generic format of pointers in ZIP_INST_S. 2928c2ecf20Sopenharmony_ci */ 2938c2ecf20Sopenharmony_ciunion zip_zptr_s { 2948c2ecf20Sopenharmony_ci u64 u_reg64[2]; 2958c2ecf20Sopenharmony_ci struct { 2968c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 2978c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 2988c2ecf20Sopenharmony_ci u64 addr : 49; 2998c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3008c2ecf20Sopenharmony_ci u64 addr : 49; 3018c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 3028c2ecf20Sopenharmony_ci#endif 3038c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 3048c2ecf20Sopenharmony_ci u64 reserved_112_127 : 16; 3058c2ecf20Sopenharmony_ci u64 length : 16; 3068c2ecf20Sopenharmony_ci u64 reserved_67_95 : 29; 3078c2ecf20Sopenharmony_ci u64 fw : 1; 3088c2ecf20Sopenharmony_ci u64 nc : 1; 3098c2ecf20Sopenharmony_ci u64 data_be : 1; 3108c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3118c2ecf20Sopenharmony_ci u64 data_be : 1; 3128c2ecf20Sopenharmony_ci u64 nc : 1; 3138c2ecf20Sopenharmony_ci u64 fw : 1; 3148c2ecf20Sopenharmony_ci u64 reserved_67_95 : 29; 3158c2ecf20Sopenharmony_ci u64 length : 16; 3168c2ecf20Sopenharmony_ci u64 reserved_112_127 : 16; 3178c2ecf20Sopenharmony_ci#endif 3188c2ecf20Sopenharmony_ci } s; 3198c2ecf20Sopenharmony_ci}; 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ci/** 3228c2ecf20Sopenharmony_ci * union zip_zres_s - ZIP Result Structure 3238c2ecf20Sopenharmony_ci * 3248c2ecf20Sopenharmony_ci * The ZIP coprocessor writes the result structure after it completes the 3258c2ecf20Sopenharmony_ci * invocation. The result structure is exactly 24 bytes, and each invocation of 3268c2ecf20Sopenharmony_ci * the ZIP coprocessor produces exactly one result structure. 3278c2ecf20Sopenharmony_ci */ 3288c2ecf20Sopenharmony_ciunion zip_zres_s { 3298c2ecf20Sopenharmony_ci u64 u_reg64[3]; 3308c2ecf20Sopenharmony_ci struct { 3318c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 3328c2ecf20Sopenharmony_ci u64 crc32 : 32; 3338c2ecf20Sopenharmony_ci u64 adler32 : 32; 3348c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3358c2ecf20Sopenharmony_ci u64 adler32 : 32; 3368c2ecf20Sopenharmony_ci u64 crc32 : 32; 3378c2ecf20Sopenharmony_ci#endif 3388c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 3398c2ecf20Sopenharmony_ci u64 totalbyteswritten : 32; 3408c2ecf20Sopenharmony_ci u64 totalbytesread : 32; 3418c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3428c2ecf20Sopenharmony_ci u64 totalbytesread : 32; 3438c2ecf20Sopenharmony_ci u64 totalbyteswritten : 32; 3448c2ecf20Sopenharmony_ci#endif 3458c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 3468c2ecf20Sopenharmony_ci u64 totalbitsprocessed : 32; 3478c2ecf20Sopenharmony_ci u64 doneint : 1; 3488c2ecf20Sopenharmony_ci u64 reserved_155_158 : 4; 3498c2ecf20Sopenharmony_ci u64 exn : 3; 3508c2ecf20Sopenharmony_ci u64 reserved_151_151 : 1; 3518c2ecf20Sopenharmony_ci u64 exbits : 7; 3528c2ecf20Sopenharmony_ci u64 reserved_137_143 : 7; 3538c2ecf20Sopenharmony_ci u64 ef : 1; 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci volatile u64 compcode : 8; 3568c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3578c2ecf20Sopenharmony_ci 3588c2ecf20Sopenharmony_ci volatile u64 compcode : 8; 3598c2ecf20Sopenharmony_ci u64 ef : 1; 3608c2ecf20Sopenharmony_ci u64 reserved_137_143 : 7; 3618c2ecf20Sopenharmony_ci u64 exbits : 7; 3628c2ecf20Sopenharmony_ci u64 reserved_151_151 : 1; 3638c2ecf20Sopenharmony_ci u64 exn : 3; 3648c2ecf20Sopenharmony_ci u64 reserved_155_158 : 4; 3658c2ecf20Sopenharmony_ci u64 doneint : 1; 3668c2ecf20Sopenharmony_ci u64 totalbitsprocessed : 32; 3678c2ecf20Sopenharmony_ci#endif 3688c2ecf20Sopenharmony_ci } s; 3698c2ecf20Sopenharmony_ci}; 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci/** 3728c2ecf20Sopenharmony_ci * union zip_cmd_ctl - Structure representing the register that controls 3738c2ecf20Sopenharmony_ci * clock and reset. 3748c2ecf20Sopenharmony_ci */ 3758c2ecf20Sopenharmony_ciunion zip_cmd_ctl { 3768c2ecf20Sopenharmony_ci u64 u_reg64; 3778c2ecf20Sopenharmony_ci struct zip_cmd_ctl_s { 3788c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 3798c2ecf20Sopenharmony_ci u64 reserved_2_63 : 62; 3808c2ecf20Sopenharmony_ci u64 forceclk : 1; 3818c2ecf20Sopenharmony_ci u64 reset : 1; 3828c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 3838c2ecf20Sopenharmony_ci u64 reset : 1; 3848c2ecf20Sopenharmony_ci u64 forceclk : 1; 3858c2ecf20Sopenharmony_ci u64 reserved_2_63 : 62; 3868c2ecf20Sopenharmony_ci#endif 3878c2ecf20Sopenharmony_ci } s; 3888c2ecf20Sopenharmony_ci}; 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci#define ZIP_CMD_CTL 0x0ull 3918c2ecf20Sopenharmony_ci 3928c2ecf20Sopenharmony_ci/** 3938c2ecf20Sopenharmony_ci * union zip_constants - Data structure representing the register that contains 3948c2ecf20Sopenharmony_ci * all of the current implementation-related parameters of the zip core in this 3958c2ecf20Sopenharmony_ci * chip. 3968c2ecf20Sopenharmony_ci */ 3978c2ecf20Sopenharmony_ciunion zip_constants { 3988c2ecf20Sopenharmony_ci u64 u_reg64; 3998c2ecf20Sopenharmony_ci struct zip_constants_s { 4008c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 4018c2ecf20Sopenharmony_ci u64 nexec : 8; 4028c2ecf20Sopenharmony_ci u64 reserved_49_55 : 7; 4038c2ecf20Sopenharmony_ci u64 syncflush_capable : 1; 4048c2ecf20Sopenharmony_ci u64 depth : 16; 4058c2ecf20Sopenharmony_ci u64 onfsize : 12; 4068c2ecf20Sopenharmony_ci u64 ctxsize : 12; 4078c2ecf20Sopenharmony_ci u64 reserved_1_7 : 7; 4088c2ecf20Sopenharmony_ci u64 disabled : 1; 4098c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 4108c2ecf20Sopenharmony_ci u64 disabled : 1; 4118c2ecf20Sopenharmony_ci u64 reserved_1_7 : 7; 4128c2ecf20Sopenharmony_ci u64 ctxsize : 12; 4138c2ecf20Sopenharmony_ci u64 onfsize : 12; 4148c2ecf20Sopenharmony_ci u64 depth : 16; 4158c2ecf20Sopenharmony_ci u64 syncflush_capable : 1; 4168c2ecf20Sopenharmony_ci u64 reserved_49_55 : 7; 4178c2ecf20Sopenharmony_ci u64 nexec : 8; 4188c2ecf20Sopenharmony_ci#endif 4198c2ecf20Sopenharmony_ci } s; 4208c2ecf20Sopenharmony_ci}; 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_ci#define ZIP_CONSTANTS 0x00A0ull 4238c2ecf20Sopenharmony_ci 4248c2ecf20Sopenharmony_ci/** 4258c2ecf20Sopenharmony_ci * union zip_corex_bist_status - Represents registers which have the BIST 4268c2ecf20Sopenharmony_ci * status of memories in zip cores. 4278c2ecf20Sopenharmony_ci * 4288c2ecf20Sopenharmony_ci * Each bit is the BIST result of an individual memory 4298c2ecf20Sopenharmony_ci * (per bit, 0 = pass and 1 = fail). 4308c2ecf20Sopenharmony_ci */ 4318c2ecf20Sopenharmony_ciunion zip_corex_bist_status { 4328c2ecf20Sopenharmony_ci u64 u_reg64; 4338c2ecf20Sopenharmony_ci struct zip_corex_bist_status_s { 4348c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 4358c2ecf20Sopenharmony_ci u64 reserved_53_63 : 11; 4368c2ecf20Sopenharmony_ci u64 bstatus : 53; 4378c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 4388c2ecf20Sopenharmony_ci u64 bstatus : 53; 4398c2ecf20Sopenharmony_ci u64 reserved_53_63 : 11; 4408c2ecf20Sopenharmony_ci#endif 4418c2ecf20Sopenharmony_ci } s; 4428c2ecf20Sopenharmony_ci}; 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_cistatic inline u64 ZIP_COREX_BIST_STATUS(u64 param1) 4458c2ecf20Sopenharmony_ci{ 4468c2ecf20Sopenharmony_ci if (param1 <= 1) 4478c2ecf20Sopenharmony_ci return 0x0520ull + (param1 & 1) * 0x8ull; 4488c2ecf20Sopenharmony_ci pr_err("ZIP_COREX_BIST_STATUS: %llu\n", param1); 4498c2ecf20Sopenharmony_ci return 0; 4508c2ecf20Sopenharmony_ci} 4518c2ecf20Sopenharmony_ci 4528c2ecf20Sopenharmony_ci/** 4538c2ecf20Sopenharmony_ci * union zip_ctl_bist_status - Represents register that has the BIST status of 4548c2ecf20Sopenharmony_ci * memories in ZIP_CTL (instruction buffer, G/S pointer FIFO, input data 4558c2ecf20Sopenharmony_ci * buffer, output data buffers). 4568c2ecf20Sopenharmony_ci * 4578c2ecf20Sopenharmony_ci * Each bit is the BIST result of an individual memory 4588c2ecf20Sopenharmony_ci * (per bit, 0 = pass and 1 = fail). 4598c2ecf20Sopenharmony_ci */ 4608c2ecf20Sopenharmony_ciunion zip_ctl_bist_status { 4618c2ecf20Sopenharmony_ci u64 u_reg64; 4628c2ecf20Sopenharmony_ci struct zip_ctl_bist_status_s { 4638c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 4648c2ecf20Sopenharmony_ci u64 reserved_9_63 : 55; 4658c2ecf20Sopenharmony_ci u64 bstatus : 9; 4668c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 4678c2ecf20Sopenharmony_ci u64 bstatus : 9; 4688c2ecf20Sopenharmony_ci u64 reserved_9_63 : 55; 4698c2ecf20Sopenharmony_ci#endif 4708c2ecf20Sopenharmony_ci } s; 4718c2ecf20Sopenharmony_ci}; 4728c2ecf20Sopenharmony_ci 4738c2ecf20Sopenharmony_ci#define ZIP_CTL_BIST_STATUS 0x0510ull 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ci/** 4768c2ecf20Sopenharmony_ci * union zip_ctl_cfg - Represents the register that controls the behavior of 4778c2ecf20Sopenharmony_ci * the ZIP DMA engines. 4788c2ecf20Sopenharmony_ci * 4798c2ecf20Sopenharmony_ci * It is recommended to keep default values for normal operation. Changing the 4808c2ecf20Sopenharmony_ci * values of the fields may be useful for diagnostics. 4818c2ecf20Sopenharmony_ci */ 4828c2ecf20Sopenharmony_ciunion zip_ctl_cfg { 4838c2ecf20Sopenharmony_ci u64 u_reg64; 4848c2ecf20Sopenharmony_ci struct zip_ctl_cfg_s { 4858c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 4868c2ecf20Sopenharmony_ci u64 reserved_52_63 : 12; 4878c2ecf20Sopenharmony_ci u64 ildf : 4; 4888c2ecf20Sopenharmony_ci u64 reserved_36_47 : 12; 4898c2ecf20Sopenharmony_ci u64 drtf : 4; 4908c2ecf20Sopenharmony_ci u64 reserved_27_31 : 5; 4918c2ecf20Sopenharmony_ci u64 stcf : 3; 4928c2ecf20Sopenharmony_ci u64 reserved_19_23 : 5; 4938c2ecf20Sopenharmony_ci u64 ldf : 3; 4948c2ecf20Sopenharmony_ci u64 reserved_2_15 : 14; 4958c2ecf20Sopenharmony_ci u64 busy : 1; 4968c2ecf20Sopenharmony_ci u64 reserved_0_0 : 1; 4978c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 4988c2ecf20Sopenharmony_ci u64 reserved_0_0 : 1; 4998c2ecf20Sopenharmony_ci u64 busy : 1; 5008c2ecf20Sopenharmony_ci u64 reserved_2_15 : 14; 5018c2ecf20Sopenharmony_ci u64 ldf : 3; 5028c2ecf20Sopenharmony_ci u64 reserved_19_23 : 5; 5038c2ecf20Sopenharmony_ci u64 stcf : 3; 5048c2ecf20Sopenharmony_ci u64 reserved_27_31 : 5; 5058c2ecf20Sopenharmony_ci u64 drtf : 4; 5068c2ecf20Sopenharmony_ci u64 reserved_36_47 : 12; 5078c2ecf20Sopenharmony_ci u64 ildf : 4; 5088c2ecf20Sopenharmony_ci u64 reserved_52_63 : 12; 5098c2ecf20Sopenharmony_ci#endif 5108c2ecf20Sopenharmony_ci } s; 5118c2ecf20Sopenharmony_ci}; 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_ci#define ZIP_CTL_CFG 0x0560ull 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ci/** 5168c2ecf20Sopenharmony_ci * union zip_dbg_corex_inst - Represents the registers that reflect the status 5178c2ecf20Sopenharmony_ci * of the current instruction that the ZIP core is executing or has executed. 5188c2ecf20Sopenharmony_ci * 5198c2ecf20Sopenharmony_ci * These registers are only for debug use. 5208c2ecf20Sopenharmony_ci */ 5218c2ecf20Sopenharmony_ciunion zip_dbg_corex_inst { 5228c2ecf20Sopenharmony_ci u64 u_reg64; 5238c2ecf20Sopenharmony_ci struct zip_dbg_corex_inst_s { 5248c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5258c2ecf20Sopenharmony_ci u64 busy : 1; 5268c2ecf20Sopenharmony_ci u64 reserved_35_62 : 28; 5278c2ecf20Sopenharmony_ci u64 qid : 3; 5288c2ecf20Sopenharmony_ci u64 iid : 32; 5298c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 5308c2ecf20Sopenharmony_ci u64 iid : 32; 5318c2ecf20Sopenharmony_ci u64 qid : 3; 5328c2ecf20Sopenharmony_ci u64 reserved_35_62 : 28; 5338c2ecf20Sopenharmony_ci u64 busy : 1; 5348c2ecf20Sopenharmony_ci#endif 5358c2ecf20Sopenharmony_ci } s; 5368c2ecf20Sopenharmony_ci}; 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_cistatic inline u64 ZIP_DBG_COREX_INST(u64 param1) 5398c2ecf20Sopenharmony_ci{ 5408c2ecf20Sopenharmony_ci if (param1 <= 1) 5418c2ecf20Sopenharmony_ci return 0x0640ull + (param1 & 1) * 0x8ull; 5428c2ecf20Sopenharmony_ci pr_err("ZIP_DBG_COREX_INST: %llu\n", param1); 5438c2ecf20Sopenharmony_ci return 0; 5448c2ecf20Sopenharmony_ci} 5458c2ecf20Sopenharmony_ci 5468c2ecf20Sopenharmony_ci/** 5478c2ecf20Sopenharmony_ci * union zip_dbg_corex_sta - Represents registers that reflect the status of 5488c2ecf20Sopenharmony_ci * the zip cores. 5498c2ecf20Sopenharmony_ci * 5508c2ecf20Sopenharmony_ci * They are for debug use only. 5518c2ecf20Sopenharmony_ci */ 5528c2ecf20Sopenharmony_ciunion zip_dbg_corex_sta { 5538c2ecf20Sopenharmony_ci u64 u_reg64; 5548c2ecf20Sopenharmony_ci struct zip_dbg_corex_sta_s { 5558c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5568c2ecf20Sopenharmony_ci u64 busy : 1; 5578c2ecf20Sopenharmony_ci u64 reserved_37_62 : 26; 5588c2ecf20Sopenharmony_ci u64 ist : 5; 5598c2ecf20Sopenharmony_ci u64 nie : 32; 5608c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 5618c2ecf20Sopenharmony_ci u64 nie : 32; 5628c2ecf20Sopenharmony_ci u64 ist : 5; 5638c2ecf20Sopenharmony_ci u64 reserved_37_62 : 26; 5648c2ecf20Sopenharmony_ci u64 busy : 1; 5658c2ecf20Sopenharmony_ci#endif 5668c2ecf20Sopenharmony_ci } s; 5678c2ecf20Sopenharmony_ci}; 5688c2ecf20Sopenharmony_ci 5698c2ecf20Sopenharmony_cistatic inline u64 ZIP_DBG_COREX_STA(u64 param1) 5708c2ecf20Sopenharmony_ci{ 5718c2ecf20Sopenharmony_ci if (param1 <= 1) 5728c2ecf20Sopenharmony_ci return 0x0680ull + (param1 & 1) * 0x8ull; 5738c2ecf20Sopenharmony_ci pr_err("ZIP_DBG_COREX_STA: %llu\n", param1); 5748c2ecf20Sopenharmony_ci return 0; 5758c2ecf20Sopenharmony_ci} 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_ci/** 5788c2ecf20Sopenharmony_ci * union zip_dbg_quex_sta - Represets registers that reflect status of the zip 5798c2ecf20Sopenharmony_ci * instruction queues. 5808c2ecf20Sopenharmony_ci * 5818c2ecf20Sopenharmony_ci * They are for debug use only. 5828c2ecf20Sopenharmony_ci */ 5838c2ecf20Sopenharmony_ciunion zip_dbg_quex_sta { 5848c2ecf20Sopenharmony_ci u64 u_reg64; 5858c2ecf20Sopenharmony_ci struct zip_dbg_quex_sta_s { 5868c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5878c2ecf20Sopenharmony_ci u64 busy : 1; 5888c2ecf20Sopenharmony_ci u64 reserved_56_62 : 7; 5898c2ecf20Sopenharmony_ci u64 rqwc : 24; 5908c2ecf20Sopenharmony_ci u64 nii : 32; 5918c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 5928c2ecf20Sopenharmony_ci u64 nii : 32; 5938c2ecf20Sopenharmony_ci u64 rqwc : 24; 5948c2ecf20Sopenharmony_ci u64 reserved_56_62 : 7; 5958c2ecf20Sopenharmony_ci u64 busy : 1; 5968c2ecf20Sopenharmony_ci#endif 5978c2ecf20Sopenharmony_ci } s; 5988c2ecf20Sopenharmony_ci}; 5998c2ecf20Sopenharmony_ci 6008c2ecf20Sopenharmony_cistatic inline u64 ZIP_DBG_QUEX_STA(u64 param1) 6018c2ecf20Sopenharmony_ci{ 6028c2ecf20Sopenharmony_ci if (param1 <= 7) 6038c2ecf20Sopenharmony_ci return 0x1800ull + (param1 & 7) * 0x8ull; 6048c2ecf20Sopenharmony_ci pr_err("ZIP_DBG_QUEX_STA: %llu\n", param1); 6058c2ecf20Sopenharmony_ci return 0; 6068c2ecf20Sopenharmony_ci} 6078c2ecf20Sopenharmony_ci 6088c2ecf20Sopenharmony_ci/** 6098c2ecf20Sopenharmony_ci * union zip_ecc_ctl - Represents the register that enables ECC for each 6108c2ecf20Sopenharmony_ci * individual internal memory that requires ECC. 6118c2ecf20Sopenharmony_ci * 6128c2ecf20Sopenharmony_ci * For debug purpose, it can also flip one or two bits in the ECC data. 6138c2ecf20Sopenharmony_ci */ 6148c2ecf20Sopenharmony_ciunion zip_ecc_ctl { 6158c2ecf20Sopenharmony_ci u64 u_reg64; 6168c2ecf20Sopenharmony_ci struct zip_ecc_ctl_s { 6178c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 6188c2ecf20Sopenharmony_ci u64 reserved_19_63 : 45; 6198c2ecf20Sopenharmony_ci u64 vmem_cdis : 1; 6208c2ecf20Sopenharmony_ci u64 vmem_fs : 2; 6218c2ecf20Sopenharmony_ci u64 reserved_15_15 : 1; 6228c2ecf20Sopenharmony_ci u64 idf1_cdis : 1; 6238c2ecf20Sopenharmony_ci u64 idf1_fs : 2; 6248c2ecf20Sopenharmony_ci u64 reserved_11_11 : 1; 6258c2ecf20Sopenharmony_ci u64 idf0_cdis : 1; 6268c2ecf20Sopenharmony_ci u64 idf0_fs : 2; 6278c2ecf20Sopenharmony_ci u64 reserved_7_7 : 1; 6288c2ecf20Sopenharmony_ci u64 gspf_cdis : 1; 6298c2ecf20Sopenharmony_ci u64 gspf_fs : 2; 6308c2ecf20Sopenharmony_ci u64 reserved_3_3 : 1; 6318c2ecf20Sopenharmony_ci u64 iqf_cdis : 1; 6328c2ecf20Sopenharmony_ci u64 iqf_fs : 2; 6338c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 6348c2ecf20Sopenharmony_ci u64 iqf_fs : 2; 6358c2ecf20Sopenharmony_ci u64 iqf_cdis : 1; 6368c2ecf20Sopenharmony_ci u64 reserved_3_3 : 1; 6378c2ecf20Sopenharmony_ci u64 gspf_fs : 2; 6388c2ecf20Sopenharmony_ci u64 gspf_cdis : 1; 6398c2ecf20Sopenharmony_ci u64 reserved_7_7 : 1; 6408c2ecf20Sopenharmony_ci u64 idf0_fs : 2; 6418c2ecf20Sopenharmony_ci u64 idf0_cdis : 1; 6428c2ecf20Sopenharmony_ci u64 reserved_11_11 : 1; 6438c2ecf20Sopenharmony_ci u64 idf1_fs : 2; 6448c2ecf20Sopenharmony_ci u64 idf1_cdis : 1; 6458c2ecf20Sopenharmony_ci u64 reserved_15_15 : 1; 6468c2ecf20Sopenharmony_ci u64 vmem_fs : 2; 6478c2ecf20Sopenharmony_ci u64 vmem_cdis : 1; 6488c2ecf20Sopenharmony_ci u64 reserved_19_63 : 45; 6498c2ecf20Sopenharmony_ci#endif 6508c2ecf20Sopenharmony_ci } s; 6518c2ecf20Sopenharmony_ci}; 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_ci#define ZIP_ECC_CTL 0x0568ull 6548c2ecf20Sopenharmony_ci 6558c2ecf20Sopenharmony_ci/* NCB - zip_ecce_ena_w1c */ 6568c2ecf20Sopenharmony_ciunion zip_ecce_ena_w1c { 6578c2ecf20Sopenharmony_ci u64 u_reg64; 6588c2ecf20Sopenharmony_ci struct zip_ecce_ena_w1c_s { 6598c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 6608c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 6618c2ecf20Sopenharmony_ci u64 dbe : 5; 6628c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 6638c2ecf20Sopenharmony_ci u64 sbe : 5; 6648c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 6658c2ecf20Sopenharmony_ci u64 sbe : 5; 6668c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 6678c2ecf20Sopenharmony_ci u64 dbe : 5; 6688c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 6698c2ecf20Sopenharmony_ci#endif 6708c2ecf20Sopenharmony_ci } s; 6718c2ecf20Sopenharmony_ci}; 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_ci#define ZIP_ECCE_ENA_W1C 0x0598ull 6748c2ecf20Sopenharmony_ci 6758c2ecf20Sopenharmony_ci/* NCB - zip_ecce_ena_w1s */ 6768c2ecf20Sopenharmony_ciunion zip_ecce_ena_w1s { 6778c2ecf20Sopenharmony_ci u64 u_reg64; 6788c2ecf20Sopenharmony_ci struct zip_ecce_ena_w1s_s { 6798c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 6808c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 6818c2ecf20Sopenharmony_ci u64 dbe : 5; 6828c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 6838c2ecf20Sopenharmony_ci u64 sbe : 5; 6848c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 6858c2ecf20Sopenharmony_ci u64 sbe : 5; 6868c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 6878c2ecf20Sopenharmony_ci u64 dbe : 5; 6888c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 6898c2ecf20Sopenharmony_ci#endif 6908c2ecf20Sopenharmony_ci } s; 6918c2ecf20Sopenharmony_ci}; 6928c2ecf20Sopenharmony_ci 6938c2ecf20Sopenharmony_ci#define ZIP_ECCE_ENA_W1S 0x0590ull 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_ci/** 6968c2ecf20Sopenharmony_ci * union zip_ecce_int - Represents the register that contains the status of the 6978c2ecf20Sopenharmony_ci * ECC interrupt sources. 6988c2ecf20Sopenharmony_ci */ 6998c2ecf20Sopenharmony_ciunion zip_ecce_int { 7008c2ecf20Sopenharmony_ci u64 u_reg64; 7018c2ecf20Sopenharmony_ci struct zip_ecce_int_s { 7028c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7038c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 7048c2ecf20Sopenharmony_ci u64 dbe : 5; 7058c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 7068c2ecf20Sopenharmony_ci u64 sbe : 5; 7078c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7088c2ecf20Sopenharmony_ci u64 sbe : 5; 7098c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 7108c2ecf20Sopenharmony_ci u64 dbe : 5; 7118c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 7128c2ecf20Sopenharmony_ci#endif 7138c2ecf20Sopenharmony_ci } s; 7148c2ecf20Sopenharmony_ci}; 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_ci#define ZIP_ECCE_INT 0x0580ull 7178c2ecf20Sopenharmony_ci 7188c2ecf20Sopenharmony_ci/* NCB - zip_ecce_int_w1s */ 7198c2ecf20Sopenharmony_ciunion zip_ecce_int_w1s { 7208c2ecf20Sopenharmony_ci u64 u_reg64; 7218c2ecf20Sopenharmony_ci struct zip_ecce_int_w1s_s { 7228c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7238c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 7248c2ecf20Sopenharmony_ci u64 dbe : 5; 7258c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 7268c2ecf20Sopenharmony_ci u64 sbe : 5; 7278c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7288c2ecf20Sopenharmony_ci u64 sbe : 5; 7298c2ecf20Sopenharmony_ci u64 reserved_5_31 : 27; 7308c2ecf20Sopenharmony_ci u64 dbe : 5; 7318c2ecf20Sopenharmony_ci u64 reserved_37_63 : 27; 7328c2ecf20Sopenharmony_ci#endif 7338c2ecf20Sopenharmony_ci } s; 7348c2ecf20Sopenharmony_ci}; 7358c2ecf20Sopenharmony_ci 7368c2ecf20Sopenharmony_ci#define ZIP_ECCE_INT_W1S 0x0588ull 7378c2ecf20Sopenharmony_ci 7388c2ecf20Sopenharmony_ci/* NCB - zip_fife_ena_w1c */ 7398c2ecf20Sopenharmony_ciunion zip_fife_ena_w1c { 7408c2ecf20Sopenharmony_ci u64 u_reg64; 7418c2ecf20Sopenharmony_ci struct zip_fife_ena_w1c_s { 7428c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7438c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7448c2ecf20Sopenharmony_ci u64 asserts : 42; 7458c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7468c2ecf20Sopenharmony_ci u64 asserts : 42; 7478c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7488c2ecf20Sopenharmony_ci#endif 7498c2ecf20Sopenharmony_ci } s; 7508c2ecf20Sopenharmony_ci}; 7518c2ecf20Sopenharmony_ci 7528c2ecf20Sopenharmony_ci#define ZIP_FIFE_ENA_W1C 0x0090ull 7538c2ecf20Sopenharmony_ci 7548c2ecf20Sopenharmony_ci/* NCB - zip_fife_ena_w1s */ 7558c2ecf20Sopenharmony_ciunion zip_fife_ena_w1s { 7568c2ecf20Sopenharmony_ci u64 u_reg64; 7578c2ecf20Sopenharmony_ci struct zip_fife_ena_w1s_s { 7588c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7598c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7608c2ecf20Sopenharmony_ci u64 asserts : 42; 7618c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7628c2ecf20Sopenharmony_ci u64 asserts : 42; 7638c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7648c2ecf20Sopenharmony_ci#endif 7658c2ecf20Sopenharmony_ci } s; 7668c2ecf20Sopenharmony_ci}; 7678c2ecf20Sopenharmony_ci 7688c2ecf20Sopenharmony_ci#define ZIP_FIFE_ENA_W1S 0x0088ull 7698c2ecf20Sopenharmony_ci 7708c2ecf20Sopenharmony_ci/* NCB - zip_fife_int */ 7718c2ecf20Sopenharmony_ciunion zip_fife_int { 7728c2ecf20Sopenharmony_ci u64 u_reg64; 7738c2ecf20Sopenharmony_ci struct zip_fife_int_s { 7748c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7758c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7768c2ecf20Sopenharmony_ci u64 asserts : 42; 7778c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7788c2ecf20Sopenharmony_ci u64 asserts : 42; 7798c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7808c2ecf20Sopenharmony_ci#endif 7818c2ecf20Sopenharmony_ci } s; 7828c2ecf20Sopenharmony_ci}; 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_ci#define ZIP_FIFE_INT 0x0078ull 7858c2ecf20Sopenharmony_ci 7868c2ecf20Sopenharmony_ci/* NCB - zip_fife_int_w1s */ 7878c2ecf20Sopenharmony_ciunion zip_fife_int_w1s { 7888c2ecf20Sopenharmony_ci u64 u_reg64; 7898c2ecf20Sopenharmony_ci struct zip_fife_int_w1s_s { 7908c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 7918c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7928c2ecf20Sopenharmony_ci u64 asserts : 42; 7938c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 7948c2ecf20Sopenharmony_ci u64 asserts : 42; 7958c2ecf20Sopenharmony_ci u64 reserved_42_63 : 22; 7968c2ecf20Sopenharmony_ci#endif 7978c2ecf20Sopenharmony_ci } s; 7988c2ecf20Sopenharmony_ci}; 7998c2ecf20Sopenharmony_ci 8008c2ecf20Sopenharmony_ci#define ZIP_FIFE_INT_W1S 0x0080ull 8018c2ecf20Sopenharmony_ci 8028c2ecf20Sopenharmony_ci/** 8038c2ecf20Sopenharmony_ci * union zip_msix_pbax - Represents the register that is the MSI-X PBA table 8048c2ecf20Sopenharmony_ci * 8058c2ecf20Sopenharmony_ci * The bit number is indexed by the ZIP_INT_VEC_E enumeration. 8068c2ecf20Sopenharmony_ci */ 8078c2ecf20Sopenharmony_ciunion zip_msix_pbax { 8088c2ecf20Sopenharmony_ci u64 u_reg64; 8098c2ecf20Sopenharmony_ci struct zip_msix_pbax_s { 8108c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 8118c2ecf20Sopenharmony_ci u64 pend : 64; 8128c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 8138c2ecf20Sopenharmony_ci u64 pend : 64; 8148c2ecf20Sopenharmony_ci#endif 8158c2ecf20Sopenharmony_ci } s; 8168c2ecf20Sopenharmony_ci}; 8178c2ecf20Sopenharmony_ci 8188c2ecf20Sopenharmony_cistatic inline u64 ZIP_MSIX_PBAX(u64 param1) 8198c2ecf20Sopenharmony_ci{ 8208c2ecf20Sopenharmony_ci if (param1 == 0) 8218c2ecf20Sopenharmony_ci return 0x0000838000FF0000ull; 8228c2ecf20Sopenharmony_ci pr_err("ZIP_MSIX_PBAX: %llu\n", param1); 8238c2ecf20Sopenharmony_ci return 0; 8248c2ecf20Sopenharmony_ci} 8258c2ecf20Sopenharmony_ci 8268c2ecf20Sopenharmony_ci/** 8278c2ecf20Sopenharmony_ci * union zip_msix_vecx_addr - Represents the register that is the MSI-X vector 8288c2ecf20Sopenharmony_ci * table, indexed by the ZIP_INT_VEC_E enumeration. 8298c2ecf20Sopenharmony_ci */ 8308c2ecf20Sopenharmony_ciunion zip_msix_vecx_addr { 8318c2ecf20Sopenharmony_ci u64 u_reg64; 8328c2ecf20Sopenharmony_ci struct zip_msix_vecx_addr_s { 8338c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 8348c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 8358c2ecf20Sopenharmony_ci u64 addr : 47; 8368c2ecf20Sopenharmony_ci u64 reserved_1_1 : 1; 8378c2ecf20Sopenharmony_ci u64 secvec : 1; 8388c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 8398c2ecf20Sopenharmony_ci u64 secvec : 1; 8408c2ecf20Sopenharmony_ci u64 reserved_1_1 : 1; 8418c2ecf20Sopenharmony_ci u64 addr : 47; 8428c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 8438c2ecf20Sopenharmony_ci#endif 8448c2ecf20Sopenharmony_ci } s; 8458c2ecf20Sopenharmony_ci}; 8468c2ecf20Sopenharmony_ci 8478c2ecf20Sopenharmony_cistatic inline u64 ZIP_MSIX_VECX_ADDR(u64 param1) 8488c2ecf20Sopenharmony_ci{ 8498c2ecf20Sopenharmony_ci if (param1 <= 17) 8508c2ecf20Sopenharmony_ci return 0x0000838000F00000ull + (param1 & 31) * 0x10ull; 8518c2ecf20Sopenharmony_ci pr_err("ZIP_MSIX_VECX_ADDR: %llu\n", param1); 8528c2ecf20Sopenharmony_ci return 0; 8538c2ecf20Sopenharmony_ci} 8548c2ecf20Sopenharmony_ci 8558c2ecf20Sopenharmony_ci/** 8568c2ecf20Sopenharmony_ci * union zip_msix_vecx_ctl - Represents the register that is the MSI-X vector 8578c2ecf20Sopenharmony_ci * table, indexed by the ZIP_INT_VEC_E enumeration. 8588c2ecf20Sopenharmony_ci */ 8598c2ecf20Sopenharmony_ciunion zip_msix_vecx_ctl { 8608c2ecf20Sopenharmony_ci u64 u_reg64; 8618c2ecf20Sopenharmony_ci struct zip_msix_vecx_ctl_s { 8628c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 8638c2ecf20Sopenharmony_ci u64 reserved_33_63 : 31; 8648c2ecf20Sopenharmony_ci u64 mask : 1; 8658c2ecf20Sopenharmony_ci u64 reserved_20_31 : 12; 8668c2ecf20Sopenharmony_ci u64 data : 20; 8678c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 8688c2ecf20Sopenharmony_ci u64 data : 20; 8698c2ecf20Sopenharmony_ci u64 reserved_20_31 : 12; 8708c2ecf20Sopenharmony_ci u64 mask : 1; 8718c2ecf20Sopenharmony_ci u64 reserved_33_63 : 31; 8728c2ecf20Sopenharmony_ci#endif 8738c2ecf20Sopenharmony_ci } s; 8748c2ecf20Sopenharmony_ci}; 8758c2ecf20Sopenharmony_ci 8768c2ecf20Sopenharmony_cistatic inline u64 ZIP_MSIX_VECX_CTL(u64 param1) 8778c2ecf20Sopenharmony_ci{ 8788c2ecf20Sopenharmony_ci if (param1 <= 17) 8798c2ecf20Sopenharmony_ci return 0x0000838000F00008ull + (param1 & 31) * 0x10ull; 8808c2ecf20Sopenharmony_ci pr_err("ZIP_MSIX_VECX_CTL: %llu\n", param1); 8818c2ecf20Sopenharmony_ci return 0; 8828c2ecf20Sopenharmony_ci} 8838c2ecf20Sopenharmony_ci 8848c2ecf20Sopenharmony_ci/** 8858c2ecf20Sopenharmony_ci * union zip_quex_done - Represents the registers that contain the per-queue 8868c2ecf20Sopenharmony_ci * instruction done count. 8878c2ecf20Sopenharmony_ci */ 8888c2ecf20Sopenharmony_ciunion zip_quex_done { 8898c2ecf20Sopenharmony_ci u64 u_reg64; 8908c2ecf20Sopenharmony_ci struct zip_quex_done_s { 8918c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 8928c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 8938c2ecf20Sopenharmony_ci u64 done : 20; 8948c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 8958c2ecf20Sopenharmony_ci u64 done : 20; 8968c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 8978c2ecf20Sopenharmony_ci#endif 8988c2ecf20Sopenharmony_ci } s; 8998c2ecf20Sopenharmony_ci}; 9008c2ecf20Sopenharmony_ci 9018c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DONE(u64 param1) 9028c2ecf20Sopenharmony_ci{ 9038c2ecf20Sopenharmony_ci if (param1 <= 7) 9048c2ecf20Sopenharmony_ci return 0x2000ull + (param1 & 7) * 0x8ull; 9058c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DONE: %llu\n", param1); 9068c2ecf20Sopenharmony_ci return 0; 9078c2ecf20Sopenharmony_ci} 9088c2ecf20Sopenharmony_ci 9098c2ecf20Sopenharmony_ci/** 9108c2ecf20Sopenharmony_ci * union zip_quex_done_ack - Represents the registers on write to which will 9118c2ecf20Sopenharmony_ci * decrement the per-queue instructiona done count. 9128c2ecf20Sopenharmony_ci */ 9138c2ecf20Sopenharmony_ciunion zip_quex_done_ack { 9148c2ecf20Sopenharmony_ci u64 u_reg64; 9158c2ecf20Sopenharmony_ci struct zip_quex_done_ack_s { 9168c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 9178c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 9188c2ecf20Sopenharmony_ci u64 done_ack : 20; 9198c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 9208c2ecf20Sopenharmony_ci u64 done_ack : 20; 9218c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 9228c2ecf20Sopenharmony_ci#endif 9238c2ecf20Sopenharmony_ci } s; 9248c2ecf20Sopenharmony_ci}; 9258c2ecf20Sopenharmony_ci 9268c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DONE_ACK(u64 param1) 9278c2ecf20Sopenharmony_ci{ 9288c2ecf20Sopenharmony_ci if (param1 <= 7) 9298c2ecf20Sopenharmony_ci return 0x2200ull + (param1 & 7) * 0x8ull; 9308c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DONE_ACK: %llu\n", param1); 9318c2ecf20Sopenharmony_ci return 0; 9328c2ecf20Sopenharmony_ci} 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ci/** 9358c2ecf20Sopenharmony_ci * union zip_quex_done_ena_w1c - Represents the register which when written 9368c2ecf20Sopenharmony_ci * 1 to will disable the DONEINT interrupt for the queue. 9378c2ecf20Sopenharmony_ci */ 9388c2ecf20Sopenharmony_ciunion zip_quex_done_ena_w1c { 9398c2ecf20Sopenharmony_ci u64 u_reg64; 9408c2ecf20Sopenharmony_ci struct zip_quex_done_ena_w1c_s { 9418c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 9428c2ecf20Sopenharmony_ci u64 reserved_1_63 : 63; 9438c2ecf20Sopenharmony_ci u64 done_ena : 1; 9448c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 9458c2ecf20Sopenharmony_ci u64 done_ena : 1; 9468c2ecf20Sopenharmony_ci u64 reserved_1_63 : 63; 9478c2ecf20Sopenharmony_ci#endif 9488c2ecf20Sopenharmony_ci } s; 9498c2ecf20Sopenharmony_ci}; 9508c2ecf20Sopenharmony_ci 9518c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DONE_ENA_W1C(u64 param1) 9528c2ecf20Sopenharmony_ci{ 9538c2ecf20Sopenharmony_ci if (param1 <= 7) 9548c2ecf20Sopenharmony_ci return 0x2600ull + (param1 & 7) * 0x8ull; 9558c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DONE_ENA_W1C: %llu\n", param1); 9568c2ecf20Sopenharmony_ci return 0; 9578c2ecf20Sopenharmony_ci} 9588c2ecf20Sopenharmony_ci 9598c2ecf20Sopenharmony_ci/** 9608c2ecf20Sopenharmony_ci * union zip_quex_done_ena_w1s - Represents the register that when written 1 to 9618c2ecf20Sopenharmony_ci * will enable the DONEINT interrupt for the queue. 9628c2ecf20Sopenharmony_ci */ 9638c2ecf20Sopenharmony_ciunion zip_quex_done_ena_w1s { 9648c2ecf20Sopenharmony_ci u64 u_reg64; 9658c2ecf20Sopenharmony_ci struct zip_quex_done_ena_w1s_s { 9668c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 9678c2ecf20Sopenharmony_ci u64 reserved_1_63 : 63; 9688c2ecf20Sopenharmony_ci u64 done_ena : 1; 9698c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 9708c2ecf20Sopenharmony_ci u64 done_ena : 1; 9718c2ecf20Sopenharmony_ci u64 reserved_1_63 : 63; 9728c2ecf20Sopenharmony_ci#endif 9738c2ecf20Sopenharmony_ci } s; 9748c2ecf20Sopenharmony_ci}; 9758c2ecf20Sopenharmony_ci 9768c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DONE_ENA_W1S(u64 param1) 9778c2ecf20Sopenharmony_ci{ 9788c2ecf20Sopenharmony_ci if (param1 <= 7) 9798c2ecf20Sopenharmony_ci return 0x2400ull + (param1 & 7) * 0x8ull; 9808c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DONE_ENA_W1S: %llu\n", param1); 9818c2ecf20Sopenharmony_ci return 0; 9828c2ecf20Sopenharmony_ci} 9838c2ecf20Sopenharmony_ci 9848c2ecf20Sopenharmony_ci/** 9858c2ecf20Sopenharmony_ci * union zip_quex_done_wait - Represents the register that specifies the per 9868c2ecf20Sopenharmony_ci * queue interrupt coalescing settings. 9878c2ecf20Sopenharmony_ci */ 9888c2ecf20Sopenharmony_ciunion zip_quex_done_wait { 9898c2ecf20Sopenharmony_ci u64 u_reg64; 9908c2ecf20Sopenharmony_ci struct zip_quex_done_wait_s { 9918c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 9928c2ecf20Sopenharmony_ci u64 reserved_48_63 : 16; 9938c2ecf20Sopenharmony_ci u64 time_wait : 16; 9948c2ecf20Sopenharmony_ci u64 reserved_20_31 : 12; 9958c2ecf20Sopenharmony_ci u64 num_wait : 20; 9968c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 9978c2ecf20Sopenharmony_ci u64 num_wait : 20; 9988c2ecf20Sopenharmony_ci u64 reserved_20_31 : 12; 9998c2ecf20Sopenharmony_ci u64 time_wait : 16; 10008c2ecf20Sopenharmony_ci u64 reserved_48_63 : 16; 10018c2ecf20Sopenharmony_ci#endif 10028c2ecf20Sopenharmony_ci } s; 10038c2ecf20Sopenharmony_ci}; 10048c2ecf20Sopenharmony_ci 10058c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DONE_WAIT(u64 param1) 10068c2ecf20Sopenharmony_ci{ 10078c2ecf20Sopenharmony_ci if (param1 <= 7) 10088c2ecf20Sopenharmony_ci return 0x2800ull + (param1 & 7) * 0x8ull; 10098c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DONE_WAIT: %llu\n", param1); 10108c2ecf20Sopenharmony_ci return 0; 10118c2ecf20Sopenharmony_ci} 10128c2ecf20Sopenharmony_ci 10138c2ecf20Sopenharmony_ci/** 10148c2ecf20Sopenharmony_ci * union zip_quex_doorbell - Represents doorbell registers for the ZIP 10158c2ecf20Sopenharmony_ci * instruction queues. 10168c2ecf20Sopenharmony_ci */ 10178c2ecf20Sopenharmony_ciunion zip_quex_doorbell { 10188c2ecf20Sopenharmony_ci u64 u_reg64; 10198c2ecf20Sopenharmony_ci struct zip_quex_doorbell_s { 10208c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 10218c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 10228c2ecf20Sopenharmony_ci u64 dbell_cnt : 20; 10238c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 10248c2ecf20Sopenharmony_ci u64 dbell_cnt : 20; 10258c2ecf20Sopenharmony_ci u64 reserved_20_63 : 44; 10268c2ecf20Sopenharmony_ci#endif 10278c2ecf20Sopenharmony_ci } s; 10288c2ecf20Sopenharmony_ci}; 10298c2ecf20Sopenharmony_ci 10308c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_DOORBELL(u64 param1) 10318c2ecf20Sopenharmony_ci{ 10328c2ecf20Sopenharmony_ci if (param1 <= 7) 10338c2ecf20Sopenharmony_ci return 0x4000ull + (param1 & 7) * 0x8ull; 10348c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_DOORBELL: %llu\n", param1); 10358c2ecf20Sopenharmony_ci return 0; 10368c2ecf20Sopenharmony_ci} 10378c2ecf20Sopenharmony_ci 10388c2ecf20Sopenharmony_ciunion zip_quex_err_ena_w1c { 10398c2ecf20Sopenharmony_ci u64 u_reg64; 10408c2ecf20Sopenharmony_ci struct zip_quex_err_ena_w1c_s { 10418c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 10428c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 10438c2ecf20Sopenharmony_ci u64 mdbe : 1; 10448c2ecf20Sopenharmony_ci u64 nwrp : 1; 10458c2ecf20Sopenharmony_ci u64 nrrp : 1; 10468c2ecf20Sopenharmony_ci u64 irde : 1; 10478c2ecf20Sopenharmony_ci u64 dovf : 1; 10488c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 10498c2ecf20Sopenharmony_ci u64 dovf : 1; 10508c2ecf20Sopenharmony_ci u64 irde : 1; 10518c2ecf20Sopenharmony_ci u64 nrrp : 1; 10528c2ecf20Sopenharmony_ci u64 nwrp : 1; 10538c2ecf20Sopenharmony_ci u64 mdbe : 1; 10548c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 10558c2ecf20Sopenharmony_ci#endif 10568c2ecf20Sopenharmony_ci } s; 10578c2ecf20Sopenharmony_ci}; 10588c2ecf20Sopenharmony_ci 10598c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_ERR_ENA_W1C(u64 param1) 10608c2ecf20Sopenharmony_ci{ 10618c2ecf20Sopenharmony_ci if (param1 <= 7) 10628c2ecf20Sopenharmony_ci return 0x3600ull + (param1 & 7) * 0x8ull; 10638c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_ERR_ENA_W1C: %llu\n", param1); 10648c2ecf20Sopenharmony_ci return 0; 10658c2ecf20Sopenharmony_ci} 10668c2ecf20Sopenharmony_ci 10678c2ecf20Sopenharmony_ciunion zip_quex_err_ena_w1s { 10688c2ecf20Sopenharmony_ci u64 u_reg64; 10698c2ecf20Sopenharmony_ci struct zip_quex_err_ena_w1s_s { 10708c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 10718c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 10728c2ecf20Sopenharmony_ci u64 mdbe : 1; 10738c2ecf20Sopenharmony_ci u64 nwrp : 1; 10748c2ecf20Sopenharmony_ci u64 nrrp : 1; 10758c2ecf20Sopenharmony_ci u64 irde : 1; 10768c2ecf20Sopenharmony_ci u64 dovf : 1; 10778c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 10788c2ecf20Sopenharmony_ci u64 dovf : 1; 10798c2ecf20Sopenharmony_ci u64 irde : 1; 10808c2ecf20Sopenharmony_ci u64 nrrp : 1; 10818c2ecf20Sopenharmony_ci u64 nwrp : 1; 10828c2ecf20Sopenharmony_ci u64 mdbe : 1; 10838c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 10848c2ecf20Sopenharmony_ci#endif 10858c2ecf20Sopenharmony_ci } s; 10868c2ecf20Sopenharmony_ci}; 10878c2ecf20Sopenharmony_ci 10888c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_ERR_ENA_W1S(u64 param1) 10898c2ecf20Sopenharmony_ci{ 10908c2ecf20Sopenharmony_ci if (param1 <= 7) 10918c2ecf20Sopenharmony_ci return 0x3400ull + (param1 & 7) * 0x8ull; 10928c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_ERR_ENA_W1S: %llu\n", param1); 10938c2ecf20Sopenharmony_ci return 0; 10948c2ecf20Sopenharmony_ci} 10958c2ecf20Sopenharmony_ci 10968c2ecf20Sopenharmony_ci/** 10978c2ecf20Sopenharmony_ci * union zip_quex_err_int - Represents registers that contain the per-queue 10988c2ecf20Sopenharmony_ci * error interrupts. 10998c2ecf20Sopenharmony_ci */ 11008c2ecf20Sopenharmony_ciunion zip_quex_err_int { 11018c2ecf20Sopenharmony_ci u64 u_reg64; 11028c2ecf20Sopenharmony_ci struct zip_quex_err_int_s { 11038c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 11048c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 11058c2ecf20Sopenharmony_ci u64 mdbe : 1; 11068c2ecf20Sopenharmony_ci u64 nwrp : 1; 11078c2ecf20Sopenharmony_ci u64 nrrp : 1; 11088c2ecf20Sopenharmony_ci u64 irde : 1; 11098c2ecf20Sopenharmony_ci u64 dovf : 1; 11108c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 11118c2ecf20Sopenharmony_ci u64 dovf : 1; 11128c2ecf20Sopenharmony_ci u64 irde : 1; 11138c2ecf20Sopenharmony_ci u64 nrrp : 1; 11148c2ecf20Sopenharmony_ci u64 nwrp : 1; 11158c2ecf20Sopenharmony_ci u64 mdbe : 1; 11168c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 11178c2ecf20Sopenharmony_ci#endif 11188c2ecf20Sopenharmony_ci } s; 11198c2ecf20Sopenharmony_ci}; 11208c2ecf20Sopenharmony_ci 11218c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_ERR_INT(u64 param1) 11228c2ecf20Sopenharmony_ci{ 11238c2ecf20Sopenharmony_ci if (param1 <= 7) 11248c2ecf20Sopenharmony_ci return 0x3000ull + (param1 & 7) * 0x8ull; 11258c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_ERR_INT: %llu\n", param1); 11268c2ecf20Sopenharmony_ci return 0; 11278c2ecf20Sopenharmony_ci} 11288c2ecf20Sopenharmony_ci 11298c2ecf20Sopenharmony_ci/* NCB - zip_que#_err_int_w1s */ 11308c2ecf20Sopenharmony_ciunion zip_quex_err_int_w1s { 11318c2ecf20Sopenharmony_ci u64 u_reg64; 11328c2ecf20Sopenharmony_ci struct zip_quex_err_int_w1s_s { 11338c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 11348c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 11358c2ecf20Sopenharmony_ci u64 mdbe : 1; 11368c2ecf20Sopenharmony_ci u64 nwrp : 1; 11378c2ecf20Sopenharmony_ci u64 nrrp : 1; 11388c2ecf20Sopenharmony_ci u64 irde : 1; 11398c2ecf20Sopenharmony_ci u64 dovf : 1; 11408c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 11418c2ecf20Sopenharmony_ci u64 dovf : 1; 11428c2ecf20Sopenharmony_ci u64 irde : 1; 11438c2ecf20Sopenharmony_ci u64 nrrp : 1; 11448c2ecf20Sopenharmony_ci u64 nwrp : 1; 11458c2ecf20Sopenharmony_ci u64 mdbe : 1; 11468c2ecf20Sopenharmony_ci u64 reserved_5_63 : 59; 11478c2ecf20Sopenharmony_ci#endif 11488c2ecf20Sopenharmony_ci } s; 11498c2ecf20Sopenharmony_ci}; 11508c2ecf20Sopenharmony_ci 11518c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_ERR_INT_W1S(u64 param1) 11528c2ecf20Sopenharmony_ci{ 11538c2ecf20Sopenharmony_ci if (param1 <= 7) 11548c2ecf20Sopenharmony_ci return 0x3200ull + (param1 & 7) * 0x8ull; 11558c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_ERR_INT_W1S: %llu\n", param1); 11568c2ecf20Sopenharmony_ci return 0; 11578c2ecf20Sopenharmony_ci} 11588c2ecf20Sopenharmony_ci 11598c2ecf20Sopenharmony_ci/** 11608c2ecf20Sopenharmony_ci * union zip_quex_gcfg - Represents the registers that reflect status of the 11618c2ecf20Sopenharmony_ci * zip instruction queues,debug use only. 11628c2ecf20Sopenharmony_ci */ 11638c2ecf20Sopenharmony_ciunion zip_quex_gcfg { 11648c2ecf20Sopenharmony_ci u64 u_reg64; 11658c2ecf20Sopenharmony_ci struct zip_quex_gcfg_s { 11668c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 11678c2ecf20Sopenharmony_ci u64 reserved_4_63 : 60; 11688c2ecf20Sopenharmony_ci u64 iqb_ldwb : 1; 11698c2ecf20Sopenharmony_ci u64 cbw_sty : 1; 11708c2ecf20Sopenharmony_ci u64 l2ld_cmd : 2; 11718c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 11728c2ecf20Sopenharmony_ci u64 l2ld_cmd : 2; 11738c2ecf20Sopenharmony_ci u64 cbw_sty : 1; 11748c2ecf20Sopenharmony_ci u64 iqb_ldwb : 1; 11758c2ecf20Sopenharmony_ci u64 reserved_4_63 : 60; 11768c2ecf20Sopenharmony_ci#endif 11778c2ecf20Sopenharmony_ci } s; 11788c2ecf20Sopenharmony_ci}; 11798c2ecf20Sopenharmony_ci 11808c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_GCFG(u64 param1) 11818c2ecf20Sopenharmony_ci{ 11828c2ecf20Sopenharmony_ci if (param1 <= 7) 11838c2ecf20Sopenharmony_ci return 0x1A00ull + (param1 & 7) * 0x8ull; 11848c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_GCFG: %llu\n", param1); 11858c2ecf20Sopenharmony_ci return 0; 11868c2ecf20Sopenharmony_ci} 11878c2ecf20Sopenharmony_ci 11888c2ecf20Sopenharmony_ci/** 11898c2ecf20Sopenharmony_ci * union zip_quex_map - Represents the registers that control how each 11908c2ecf20Sopenharmony_ci * instruction queue maps to zip cores. 11918c2ecf20Sopenharmony_ci */ 11928c2ecf20Sopenharmony_ciunion zip_quex_map { 11938c2ecf20Sopenharmony_ci u64 u_reg64; 11948c2ecf20Sopenharmony_ci struct zip_quex_map_s { 11958c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 11968c2ecf20Sopenharmony_ci u64 reserved_2_63 : 62; 11978c2ecf20Sopenharmony_ci u64 zce : 2; 11988c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 11998c2ecf20Sopenharmony_ci u64 zce : 2; 12008c2ecf20Sopenharmony_ci u64 reserved_2_63 : 62; 12018c2ecf20Sopenharmony_ci#endif 12028c2ecf20Sopenharmony_ci } s; 12038c2ecf20Sopenharmony_ci}; 12048c2ecf20Sopenharmony_ci 12058c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_MAP(u64 param1) 12068c2ecf20Sopenharmony_ci{ 12078c2ecf20Sopenharmony_ci if (param1 <= 7) 12088c2ecf20Sopenharmony_ci return 0x1400ull + (param1 & 7) * 0x8ull; 12098c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_MAP: %llu\n", param1); 12108c2ecf20Sopenharmony_ci return 0; 12118c2ecf20Sopenharmony_ci} 12128c2ecf20Sopenharmony_ci 12138c2ecf20Sopenharmony_ci/** 12148c2ecf20Sopenharmony_ci * union zip_quex_sbuf_addr - Represents the registers that set the buffer 12158c2ecf20Sopenharmony_ci * parameters for the instruction queues. 12168c2ecf20Sopenharmony_ci * 12178c2ecf20Sopenharmony_ci * When quiescent (i.e. outstanding doorbell count is 0), it is safe to rewrite 12188c2ecf20Sopenharmony_ci * this register to effectively reset the command buffer state machine. 12198c2ecf20Sopenharmony_ci * These registers must be programmed after SW programs the corresponding 12208c2ecf20Sopenharmony_ci * ZIP_QUE(0..7)_SBUF_CTL. 12218c2ecf20Sopenharmony_ci */ 12228c2ecf20Sopenharmony_ciunion zip_quex_sbuf_addr { 12238c2ecf20Sopenharmony_ci u64 u_reg64; 12248c2ecf20Sopenharmony_ci struct zip_quex_sbuf_addr_s { 12258c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 12268c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 12278c2ecf20Sopenharmony_ci u64 ptr : 42; 12288c2ecf20Sopenharmony_ci u64 off : 7; 12298c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 12308c2ecf20Sopenharmony_ci u64 off : 7; 12318c2ecf20Sopenharmony_ci u64 ptr : 42; 12328c2ecf20Sopenharmony_ci u64 reserved_49_63 : 15; 12338c2ecf20Sopenharmony_ci#endif 12348c2ecf20Sopenharmony_ci } s; 12358c2ecf20Sopenharmony_ci}; 12368c2ecf20Sopenharmony_ci 12378c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_SBUF_ADDR(u64 param1) 12388c2ecf20Sopenharmony_ci{ 12398c2ecf20Sopenharmony_ci if (param1 <= 7) 12408c2ecf20Sopenharmony_ci return 0x1000ull + (param1 & 7) * 0x8ull; 12418c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_SBUF_ADDR: %llu\n", param1); 12428c2ecf20Sopenharmony_ci return 0; 12438c2ecf20Sopenharmony_ci} 12448c2ecf20Sopenharmony_ci 12458c2ecf20Sopenharmony_ci/** 12468c2ecf20Sopenharmony_ci * union zip_quex_sbuf_ctl - Represents the registers that set the buffer 12478c2ecf20Sopenharmony_ci * parameters for the instruction queues. 12488c2ecf20Sopenharmony_ci * 12498c2ecf20Sopenharmony_ci * When quiescent (i.e. outstanding doorbell count is 0), it is safe to rewrite 12508c2ecf20Sopenharmony_ci * this register to effectively reset the command buffer state machine. 12518c2ecf20Sopenharmony_ci * These registers must be programmed before SW programs the corresponding 12528c2ecf20Sopenharmony_ci * ZIP_QUE(0..7)_SBUF_ADDR. 12538c2ecf20Sopenharmony_ci */ 12548c2ecf20Sopenharmony_ciunion zip_quex_sbuf_ctl { 12558c2ecf20Sopenharmony_ci u64 u_reg64; 12568c2ecf20Sopenharmony_ci struct zip_quex_sbuf_ctl_s { 12578c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 12588c2ecf20Sopenharmony_ci u64 reserved_45_63 : 19; 12598c2ecf20Sopenharmony_ci u64 size : 13; 12608c2ecf20Sopenharmony_ci u64 inst_be : 1; 12618c2ecf20Sopenharmony_ci u64 reserved_24_30 : 7; 12628c2ecf20Sopenharmony_ci u64 stream_id : 8; 12638c2ecf20Sopenharmony_ci u64 reserved_12_15 : 4; 12648c2ecf20Sopenharmony_ci u64 aura : 12; 12658c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 12668c2ecf20Sopenharmony_ci u64 aura : 12; 12678c2ecf20Sopenharmony_ci u64 reserved_12_15 : 4; 12688c2ecf20Sopenharmony_ci u64 stream_id : 8; 12698c2ecf20Sopenharmony_ci u64 reserved_24_30 : 7; 12708c2ecf20Sopenharmony_ci u64 inst_be : 1; 12718c2ecf20Sopenharmony_ci u64 size : 13; 12728c2ecf20Sopenharmony_ci u64 reserved_45_63 : 19; 12738c2ecf20Sopenharmony_ci#endif 12748c2ecf20Sopenharmony_ci } s; 12758c2ecf20Sopenharmony_ci}; 12768c2ecf20Sopenharmony_ci 12778c2ecf20Sopenharmony_cistatic inline u64 ZIP_QUEX_SBUF_CTL(u64 param1) 12788c2ecf20Sopenharmony_ci{ 12798c2ecf20Sopenharmony_ci if (param1 <= 7) 12808c2ecf20Sopenharmony_ci return 0x1200ull + (param1 & 7) * 0x8ull; 12818c2ecf20Sopenharmony_ci pr_err("ZIP_QUEX_SBUF_CTL: %llu\n", param1); 12828c2ecf20Sopenharmony_ci return 0; 12838c2ecf20Sopenharmony_ci} 12848c2ecf20Sopenharmony_ci 12858c2ecf20Sopenharmony_ci/** 12868c2ecf20Sopenharmony_ci * union zip_que_ena - Represents queue enable register 12878c2ecf20Sopenharmony_ci * 12888c2ecf20Sopenharmony_ci * If a queue is disabled, ZIP_CTL stops fetching instructions from the queue. 12898c2ecf20Sopenharmony_ci */ 12908c2ecf20Sopenharmony_ciunion zip_que_ena { 12918c2ecf20Sopenharmony_ci u64 u_reg64; 12928c2ecf20Sopenharmony_ci struct zip_que_ena_s { 12938c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 12948c2ecf20Sopenharmony_ci u64 reserved_8_63 : 56; 12958c2ecf20Sopenharmony_ci u64 ena : 8; 12968c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 12978c2ecf20Sopenharmony_ci u64 ena : 8; 12988c2ecf20Sopenharmony_ci u64 reserved_8_63 : 56; 12998c2ecf20Sopenharmony_ci#endif 13008c2ecf20Sopenharmony_ci } s; 13018c2ecf20Sopenharmony_ci}; 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_ci#define ZIP_QUE_ENA 0x0500ull 13048c2ecf20Sopenharmony_ci 13058c2ecf20Sopenharmony_ci/** 13068c2ecf20Sopenharmony_ci * union zip_que_pri - Represents the register that defines the priority 13078c2ecf20Sopenharmony_ci * between instruction queues. 13088c2ecf20Sopenharmony_ci */ 13098c2ecf20Sopenharmony_ciunion zip_que_pri { 13108c2ecf20Sopenharmony_ci u64 u_reg64; 13118c2ecf20Sopenharmony_ci struct zip_que_pri_s { 13128c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 13138c2ecf20Sopenharmony_ci u64 reserved_8_63 : 56; 13148c2ecf20Sopenharmony_ci u64 pri : 8; 13158c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 13168c2ecf20Sopenharmony_ci u64 pri : 8; 13178c2ecf20Sopenharmony_ci u64 reserved_8_63 : 56; 13188c2ecf20Sopenharmony_ci#endif 13198c2ecf20Sopenharmony_ci } s; 13208c2ecf20Sopenharmony_ci}; 13218c2ecf20Sopenharmony_ci 13228c2ecf20Sopenharmony_ci#define ZIP_QUE_PRI 0x0508ull 13238c2ecf20Sopenharmony_ci 13248c2ecf20Sopenharmony_ci/** 13258c2ecf20Sopenharmony_ci * union zip_throttle - Represents the register that controls the maximum 13268c2ecf20Sopenharmony_ci * number of in-flight X2I data fetch transactions. 13278c2ecf20Sopenharmony_ci * 13288c2ecf20Sopenharmony_ci * Writing 0 to this register causes the ZIP module to temporarily suspend NCB 13298c2ecf20Sopenharmony_ci * accesses; it is not recommended for normal operation, but may be useful for 13308c2ecf20Sopenharmony_ci * diagnostics. 13318c2ecf20Sopenharmony_ci */ 13328c2ecf20Sopenharmony_ciunion zip_throttle { 13338c2ecf20Sopenharmony_ci u64 u_reg64; 13348c2ecf20Sopenharmony_ci struct zip_throttle_s { 13358c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 13368c2ecf20Sopenharmony_ci u64 reserved_6_63 : 58; 13378c2ecf20Sopenharmony_ci u64 ld_infl : 6; 13388c2ecf20Sopenharmony_ci#elif defined(__LITTLE_ENDIAN_BITFIELD) 13398c2ecf20Sopenharmony_ci u64 ld_infl : 6; 13408c2ecf20Sopenharmony_ci u64 reserved_6_63 : 58; 13418c2ecf20Sopenharmony_ci#endif 13428c2ecf20Sopenharmony_ci } s; 13438c2ecf20Sopenharmony_ci}; 13448c2ecf20Sopenharmony_ci 13458c2ecf20Sopenharmony_ci#define ZIP_THROTTLE 0x0010ull 13468c2ecf20Sopenharmony_ci 13478c2ecf20Sopenharmony_ci#endif /* _CSRS_ZIP__ */ 1348