Path: blob/master/drivers/accel/habanalabs/goya/goya_security.c
26439 views
// SPDX-License-Identifier: GPL-2.012/*3* Copyright 2016-2019 HabanaLabs, Ltd.4* All Rights Reserved.5*/67#include "goyaP.h"8#include "../include/goya/asic_reg/goya_regs.h"910/*11* goya_set_block_as_protected - set the given block as protected12*13* @hdev: pointer to hl_device structure14* @block: block base address15*16*/17static void goya_pb_set_block(struct hl_device *hdev, u64 base)18{19u32 pb_addr = base - CFG_BASE + PROT_BITS_OFFS;2021while (pb_addr & 0xFFF) {22WREG32(pb_addr, 0);23pb_addr += 4;24}25}2627static void goya_init_mme_protection_bits(struct hl_device *hdev)28{29u32 pb_addr, mask;30u8 word_offset;3132/* TODO: change to real reg name when Soc Online is updated */33u64 mmMME_SBB_POWER_ECO1 = 0xDFF60,34mmMME_SBB_POWER_ECO2 = 0xDFF64;3536goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_0_BASE);37goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_1_BASE);38goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_2_BASE);39goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_3_BASE);4041goya_pb_set_block(hdev, mmSBA_ECC_MEM_BASE);42goya_pb_set_block(hdev, mmSBB_ECC_MEM_BASE);4344goya_pb_set_block(hdev, mmMME1_RTR_BASE);45goya_pb_set_block(hdev, mmMME1_RD_REGULATOR_BASE);46goya_pb_set_block(hdev, mmMME1_WR_REGULATOR_BASE);47goya_pb_set_block(hdev, mmMME2_RTR_BASE);48goya_pb_set_block(hdev, mmMME2_RD_REGULATOR_BASE);49goya_pb_set_block(hdev, mmMME2_WR_REGULATOR_BASE);50goya_pb_set_block(hdev, mmMME3_RTR_BASE);51goya_pb_set_block(hdev, mmMME3_RD_REGULATOR_BASE);52goya_pb_set_block(hdev, mmMME3_WR_REGULATOR_BASE);5354goya_pb_set_block(hdev, mmMME4_RTR_BASE);55goya_pb_set_block(hdev, mmMME4_RD_REGULATOR_BASE);56goya_pb_set_block(hdev, mmMME4_WR_REGULATOR_BASE);5758goya_pb_set_block(hdev, mmMME5_RTR_BASE);59goya_pb_set_block(hdev, mmMME5_RD_REGULATOR_BASE);60goya_pb_set_block(hdev, mmMME5_WR_REGULATOR_BASE);6162goya_pb_set_block(hdev, mmMME6_RTR_BASE);63goya_pb_set_block(hdev, mmMME6_RD_REGULATOR_BASE);64goya_pb_set_block(hdev, mmMME6_WR_REGULATOR_BASE);6566pb_addr = (mmMME_DUMMY & ~0xFFF) + PROT_BITS_OFFS;67word_offset = ((mmMME_DUMMY & PROT_BITS_OFFS) >> 7) << 2;68mask = 1 << ((mmMME_DUMMY & 0x7F) >> 2);69mask |= 1 << ((mmMME_RESET & 0x7F) >> 2);70mask |= 1 << ((mmMME_STALL & 0x7F) >> 2);71mask |= 1 << ((mmMME_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);72mask |= 1 << ((mmMME_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);73mask |= 1 << ((mmMME_DBGMEM_ADD & 0x7F) >> 2);74mask |= 1 << ((mmMME_DBGMEM_DATA_WR & 0x7F) >> 2);75mask |= 1 << ((mmMME_DBGMEM_DATA_RD & 0x7F) >> 2);76mask |= 1 << ((mmMME_DBGMEM_CTRL & 0x7F) >> 2);77mask |= 1 << ((mmMME_DBGMEM_RC & 0x7F) >> 2);78mask |= 1 << ((mmMME_LOG_SHADOW & 0x7F) >> 2);7980WREG32(pb_addr + word_offset, ~mask);8182pb_addr = (mmMME_STORE_MAX_CREDIT & ~0xFFF) + PROT_BITS_OFFS;83word_offset = ((mmMME_STORE_MAX_CREDIT & PROT_BITS_OFFS) >> 7) << 2;84mask = 1 << ((mmMME_STORE_MAX_CREDIT & 0x7F) >> 2);85mask |= 1 << ((mmMME_AGU & 0x7F) >> 2);86mask |= 1 << ((mmMME_SBA & 0x7F) >> 2);87mask |= 1 << ((mmMME_SBB & 0x7F) >> 2);88mask |= 1 << ((mmMME_SBC & 0x7F) >> 2);89mask |= 1 << ((mmMME_WBC & 0x7F) >> 2);90mask |= 1 << ((mmMME_SBA_CONTROL_DATA & 0x7F) >> 2);91mask |= 1 << ((mmMME_SBB_CONTROL_DATA & 0x7F) >> 2);92mask |= 1 << ((mmMME_SBC_CONTROL_DATA & 0x7F) >> 2);93mask |= 1 << ((mmMME_WBC_CONTROL_DATA & 0x7F) >> 2);94mask |= 1 << ((mmMME_TE & 0x7F) >> 2);95mask |= 1 << ((mmMME_TE2DEC & 0x7F) >> 2);96mask |= 1 << ((mmMME_REI_STATUS & 0x7F) >> 2);97mask |= 1 << ((mmMME_REI_MASK & 0x7F) >> 2);98mask |= 1 << ((mmMME_SEI_STATUS & 0x7F) >> 2);99mask |= 1 << ((mmMME_SEI_MASK & 0x7F) >> 2);100mask |= 1 << ((mmMME_SPI_STATUS & 0x7F) >> 2);101mask |= 1 << ((mmMME_SPI_MASK & 0x7F) >> 2);102103WREG32(pb_addr + word_offset, ~mask);104105pb_addr = (mmMME_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;106word_offset = ((mmMME_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;107mask = 1 << ((mmMME_QM_GLBL_CFG0 & 0x7F) >> 2);108mask |= 1 << ((mmMME_QM_GLBL_CFG1 & 0x7F) >> 2);109mask |= 1 << ((mmMME_QM_GLBL_PROT & 0x7F) >> 2);110mask |= 1 << ((mmMME_QM_GLBL_ERR_CFG & 0x7F) >> 2);111mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);112mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);113mask |= 1 << ((mmMME_QM_GLBL_ERR_WDATA & 0x7F) >> 2);114mask |= 1 << ((mmMME_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);115mask |= 1 << ((mmMME_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);116mask |= 1 << ((mmMME_QM_GLBL_STS0 & 0x7F) >> 2);117mask |= 1 << ((mmMME_QM_GLBL_STS1 & 0x7F) >> 2);118mask |= 1 << ((mmMME_QM_PQ_BASE_LO & 0x7F) >> 2);119mask |= 1 << ((mmMME_QM_PQ_BASE_HI & 0x7F) >> 2);120mask |= 1 << ((mmMME_QM_PQ_SIZE & 0x7F) >> 2);121mask |= 1 << ((mmMME_QM_PQ_PI & 0x7F) >> 2);122mask |= 1 << ((mmMME_QM_PQ_CI & 0x7F) >> 2);123mask |= 1 << ((mmMME_QM_PQ_CFG0 & 0x7F) >> 2);124mask |= 1 << ((mmMME_QM_PQ_CFG1 & 0x7F) >> 2);125mask |= 1 << ((mmMME_QM_PQ_ARUSER & 0x7F) >> 2);126127WREG32(pb_addr + word_offset, ~mask);128129pb_addr = (mmMME_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;130word_offset = ((mmMME_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;131mask = 1 << ((mmMME_QM_PQ_PUSH0 & 0x7F) >> 2);132mask |= 1 << ((mmMME_QM_PQ_PUSH1 & 0x7F) >> 2);133mask |= 1 << ((mmMME_QM_PQ_PUSH2 & 0x7F) >> 2);134mask |= 1 << ((mmMME_QM_PQ_PUSH3 & 0x7F) >> 2);135mask |= 1 << ((mmMME_QM_PQ_STS0 & 0x7F) >> 2);136mask |= 1 << ((mmMME_QM_PQ_STS1 & 0x7F) >> 2);137mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);138mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);139mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);140mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);141mask |= 1 << ((mmMME_QM_CQ_CFG0 & 0x7F) >> 2);142mask |= 1 << ((mmMME_QM_CQ_CFG1 & 0x7F) >> 2);143mask |= 1 << ((mmMME_QM_CQ_ARUSER & 0x7F) >> 2);144mask |= 1 << ((mmMME_QM_CQ_PTR_LO & 0x7F) >> 2);145mask |= 1 << ((mmMME_QM_CQ_PTR_HI & 0x7F) >> 2);146mask |= 1 << ((mmMME_QM_CQ_TSIZE & 0x7F) >> 2);147mask |= 1 << ((mmMME_QM_CQ_CTL & 0x7F) >> 2);148mask |= 1 << ((mmMME_QM_CQ_PTR_LO_STS & 0x7F) >> 2);149mask |= 1 << ((mmMME_QM_CQ_PTR_HI_STS & 0x7F) >> 2);150mask |= 1 << ((mmMME_QM_CQ_TSIZE_STS & 0x7F) >> 2);151mask |= 1 << ((mmMME_QM_CQ_CTL_STS & 0x7F) >> 2);152mask |= 1 << ((mmMME_QM_CQ_STS0 & 0x7F) >> 2);153mask |= 1 << ((mmMME_QM_CQ_STS1 & 0x7F) >> 2);154mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);155mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);156mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);157mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);158159WREG32(pb_addr + word_offset, ~mask);160161pb_addr = (mmMME_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;162word_offset = ((mmMME_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;163mask = 1 << ((mmMME_QM_CQ_IFIFO_CNT & 0x7F) >> 2);164mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);165mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);166mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);167mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);168mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);169mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);170mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);171mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);172mask |= 1 << ((mmMME_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);173mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);174mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);175mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);176mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);177mask |= 1 << ((mmMME_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);178179WREG32(pb_addr + word_offset, ~mask);180181pb_addr = (mmMME_QM_CP_STS & ~0xFFF) + PROT_BITS_OFFS;182word_offset = ((mmMME_QM_CP_STS & PROT_BITS_OFFS) >> 7) << 2;183mask = 1 << ((mmMME_QM_CP_STS & 0x7F) >> 2);184mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_LO & 0x7F) >> 2);185mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_HI & 0x7F) >> 2);186mask |= 1 << ((mmMME_QM_CP_BARRIER_CFG & 0x7F) >> 2);187mask |= 1 << ((mmMME_QM_CP_DBG_0 & 0x7F) >> 2);188mask |= 1 << ((mmMME_QM_PQ_BUF_ADDR & 0x7F) >> 2);189mask |= 1 << ((mmMME_QM_PQ_BUF_RDATA & 0x7F) >> 2);190mask |= 1 << ((mmMME_QM_CQ_BUF_ADDR & 0x7F) >> 2);191mask |= 1 << ((mmMME_QM_CQ_BUF_RDATA & 0x7F) >> 2);192193WREG32(pb_addr + word_offset, ~mask);194195pb_addr = (mmMME_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;196word_offset = ((mmMME_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;197mask = 1 << ((mmMME_CMDQ_GLBL_CFG0 & 0x7F) >> 2);198mask |= 1 << ((mmMME_CMDQ_GLBL_CFG1 & 0x7F) >> 2);199mask |= 1 << ((mmMME_CMDQ_GLBL_PROT & 0x7F) >> 2);200mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);201mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);202mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);203mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);204mask |= 1 << ((mmMME_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);205mask |= 1 << ((mmMME_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);206mask |= 1 << ((mmMME_CMDQ_GLBL_STS0 & 0x7F) >> 2);207mask |= 1 << ((mmMME_CMDQ_GLBL_STS1 & 0x7F) >> 2);208209WREG32(pb_addr + word_offset, ~mask);210211pb_addr = (mmMME_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;212word_offset = ((mmMME_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;213mask = 1 << ((mmMME_CMDQ_CQ_CFG0 & 0x7F) >> 2);214mask |= 1 << ((mmMME_CMDQ_CQ_CFG1 & 0x7F) >> 2);215mask |= 1 << ((mmMME_CMDQ_CQ_ARUSER & 0x7F) >> 2);216mask |= 1 << ((mmMME_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);217mask |= 1 << ((mmMME_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);218mask |= 1 << ((mmMME_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);219mask |= 1 << ((mmMME_CMDQ_CQ_CTL_STS & 0x7F) >> 2);220mask |= 1 << ((mmMME_CMDQ_CQ_STS0 & 0x7F) >> 2);221mask |= 1 << ((mmMME_CMDQ_CQ_STS1 & 0x7F) >> 2);222mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);223mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);224mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);225mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);226227WREG32(pb_addr + word_offset, ~mask);228229pb_addr = (mmMME_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;230word_offset = ((mmMME_CMDQ_CQ_IFIFO_CNT &231PROT_BITS_OFFS) >> 7) << 2;232mask = 1 << ((mmMME_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);233mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);234mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);235mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);236mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);237mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);238mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);239mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);240mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);241mask |= 1 << ((mmMME_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);242mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);243mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);244mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);245mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);246mask |= 1 << ((mmMME_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);247mask |= 1 << ((mmMME_CMDQ_CP_STS & 0x7F) >> 2);248mask |= 1 << ((mmMME_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);249250WREG32(pb_addr + word_offset, ~mask);251252pb_addr = (mmMME_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;253word_offset = ((mmMME_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)254<< 2;255mask = 1 << ((mmMME_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);256mask |= 1 << ((mmMME_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);257mask |= 1 << ((mmMME_CMDQ_CP_DBG_0 & 0x7F) >> 2);258mask |= 1 << ((mmMME_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);259mask |= 1 << ((mmMME_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);260261WREG32(pb_addr + word_offset, ~mask);262263pb_addr = (mmMME_SBB_POWER_ECO1 & ~0xFFF) + PROT_BITS_OFFS;264word_offset = ((mmMME_SBB_POWER_ECO1 & PROT_BITS_OFFS) >> 7) << 2;265mask = 1 << ((mmMME_SBB_POWER_ECO1 & 0x7F) >> 2);266mask |= 1 << ((mmMME_SBB_POWER_ECO2 & 0x7F) >> 2);267268WREG32(pb_addr + word_offset, ~mask);269}270271static void goya_init_dma_protection_bits(struct hl_device *hdev)272{273u32 pb_addr, mask;274u8 word_offset;275276goya_pb_set_block(hdev, mmDMA_NRTR_BASE);277goya_pb_set_block(hdev, mmDMA_RD_REGULATOR_BASE);278goya_pb_set_block(hdev, mmDMA_WR_REGULATOR_BASE);279280pb_addr = (mmDMA_QM_0_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;281word_offset = ((mmDMA_QM_0_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;282mask = 1 << ((mmDMA_QM_0_GLBL_CFG0 & 0x7F) >> 2);283mask |= 1 << ((mmDMA_QM_0_GLBL_CFG1 & 0x7F) >> 2);284mask |= 1 << ((mmDMA_QM_0_GLBL_PROT & 0x7F) >> 2);285mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_CFG & 0x7F) >> 2);286mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_LO & 0x7F) >> 2);287mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_HI & 0x7F) >> 2);288mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_WDATA & 0x7F) >> 2);289mask |= 1 << ((mmDMA_QM_0_GLBL_SECURE_PROPS & 0x7F) >> 2);290mask |= 1 << ((mmDMA_QM_0_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);291mask |= 1 << ((mmDMA_QM_0_GLBL_STS0 & 0x7F) >> 2);292mask |= 1 << ((mmDMA_QM_0_GLBL_STS1 & 0x7F) >> 2);293mask |= 1 << ((mmDMA_QM_0_PQ_BASE_LO & 0x7F) >> 2);294mask |= 1 << ((mmDMA_QM_0_PQ_BASE_HI & 0x7F) >> 2);295mask |= 1 << ((mmDMA_QM_0_PQ_SIZE & 0x7F) >> 2);296mask |= 1 << ((mmDMA_QM_0_PQ_PI & 0x7F) >> 2);297mask |= 1 << ((mmDMA_QM_0_PQ_CI & 0x7F) >> 2);298mask |= 1 << ((mmDMA_QM_0_PQ_CFG0 & 0x7F) >> 2);299mask |= 1 << ((mmDMA_QM_0_PQ_CFG1 & 0x7F) >> 2);300mask |= 1 << ((mmDMA_QM_0_PQ_ARUSER & 0x7F) >> 2);301302WREG32(pb_addr + word_offset, ~mask);303304pb_addr = (mmDMA_QM_0_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;305word_offset = ((mmDMA_QM_0_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;306mask = 1 << ((mmDMA_QM_0_PQ_PUSH0 & 0x7F) >> 2);307mask |= 1 << ((mmDMA_QM_0_PQ_PUSH1 & 0x7F) >> 2);308mask |= 1 << ((mmDMA_QM_0_PQ_PUSH2 & 0x7F) >> 2);309mask |= 1 << ((mmDMA_QM_0_PQ_PUSH3 & 0x7F) >> 2);310mask |= 1 << ((mmDMA_QM_0_PQ_STS0 & 0x7F) >> 2);311mask |= 1 << ((mmDMA_QM_0_PQ_STS1 & 0x7F) >> 2);312mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);313mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);314mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);315mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);316mask |= 1 << ((mmDMA_QM_0_CQ_CFG0 & 0x7F) >> 2);317mask |= 1 << ((mmDMA_QM_0_CQ_CFG1 & 0x7F) >> 2);318mask |= 1 << ((mmDMA_QM_0_CQ_ARUSER & 0x7F) >> 2);319mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO & 0x7F) >> 2);320mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI & 0x7F) >> 2);321mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE & 0x7F) >> 2);322mask |= 1 << ((mmDMA_QM_0_CQ_CTL & 0x7F) >> 2);323mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO_STS & 0x7F) >> 2);324mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI_STS & 0x7F) >> 2);325mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE_STS & 0x7F) >> 2);326mask |= 1 << ((mmDMA_QM_0_CQ_CTL_STS & 0x7F) >> 2);327mask |= 1 << ((mmDMA_QM_0_CQ_STS0 & 0x7F) >> 2);328mask |= 1 << ((mmDMA_QM_0_CQ_STS1 & 0x7F) >> 2);329mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);330mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);331mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);332mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);333334WREG32(pb_addr + word_offset, ~mask);335336pb_addr = (mmDMA_QM_0_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;337word_offset = ((mmDMA_QM_0_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;338mask = 1 << ((mmDMA_QM_0_CQ_IFIFO_CNT & 0x7F) >> 2);339mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);340mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);341mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);342mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);343mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);344mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);345mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);346mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);347mask |= 1 << ((mmDMA_QM_0_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);348mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);349mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);350mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);351mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);352mask |= 1 << ((mmDMA_QM_0_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);353354WREG32(pb_addr + word_offset, ~mask);355356goya_pb_set_block(hdev, mmDMA_CH_0_BASE);357358pb_addr = (mmDMA_QM_1_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;359word_offset = ((mmDMA_QM_1_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;360mask = 1 << ((mmDMA_QM_1_GLBL_CFG0 & 0x7F) >> 2);361mask |= 1 << ((mmDMA_QM_1_GLBL_CFG1 & 0x7F) >> 2);362mask |= 1 << ((mmDMA_QM_1_GLBL_PROT & 0x7F) >> 2);363mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_CFG & 0x7F) >> 2);364mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_LO & 0x7F) >> 2);365mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_HI & 0x7F) >> 2);366mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_WDATA & 0x7F) >> 2);367mask |= 1 << ((mmDMA_QM_1_GLBL_SECURE_PROPS & 0x7F) >> 2);368mask |= 1 << ((mmDMA_QM_1_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);369mask |= 1 << ((mmDMA_QM_1_GLBL_STS0 & 0x7F) >> 2);370mask |= 1 << ((mmDMA_QM_1_GLBL_STS1 & 0x7F) >> 2);371mask |= 1 << ((mmDMA_QM_1_PQ_BASE_LO & 0x7F) >> 2);372mask |= 1 << ((mmDMA_QM_1_PQ_BASE_HI & 0x7F) >> 2);373mask |= 1 << ((mmDMA_QM_1_PQ_SIZE & 0x7F) >> 2);374mask |= 1 << ((mmDMA_QM_1_PQ_PI & 0x7F) >> 2);375mask |= 1 << ((mmDMA_QM_1_PQ_CI & 0x7F) >> 2);376mask |= 1 << ((mmDMA_QM_1_PQ_CFG0 & 0x7F) >> 2);377mask |= 1 << ((mmDMA_QM_1_PQ_CFG1 & 0x7F) >> 2);378mask |= 1 << ((mmDMA_QM_1_PQ_ARUSER & 0x7F) >> 2);379380WREG32(pb_addr + word_offset, ~mask);381382pb_addr = (mmDMA_QM_1_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;383word_offset = ((mmDMA_QM_1_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;384mask = 1 << ((mmDMA_QM_1_PQ_PUSH0 & 0x7F) >> 2);385mask |= 1 << ((mmDMA_QM_1_PQ_PUSH1 & 0x7F) >> 2);386mask |= 1 << ((mmDMA_QM_1_PQ_PUSH2 & 0x7F) >> 2);387mask |= 1 << ((mmDMA_QM_1_PQ_PUSH3 & 0x7F) >> 2);388mask |= 1 << ((mmDMA_QM_1_PQ_STS0 & 0x7F) >> 2);389mask |= 1 << ((mmDMA_QM_1_PQ_STS1 & 0x7F) >> 2);390mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);391mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);392mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);393mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);394mask |= 1 << ((mmDMA_QM_1_CQ_CFG0 & 0x7F) >> 2);395mask |= 1 << ((mmDMA_QM_1_CQ_CFG1 & 0x7F) >> 2);396mask |= 1 << ((mmDMA_QM_1_CQ_ARUSER & 0x7F) >> 2);397mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO & 0x7F) >> 2);398mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI & 0x7F) >> 2);399mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE & 0x7F) >> 2);400mask |= 1 << ((mmDMA_QM_1_CQ_CTL & 0x7F) >> 2);401mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO_STS & 0x7F) >> 2);402mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI_STS & 0x7F) >> 2);403mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE_STS & 0x7F) >> 2);404mask |= 1 << ((mmDMA_QM_1_CQ_CTL_STS & 0x7F) >> 2);405mask |= 1 << ((mmDMA_QM_1_CQ_STS0 & 0x7F) >> 2);406mask |= 1 << ((mmDMA_QM_1_CQ_STS1 & 0x7F) >> 2);407mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);408mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);409mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);410mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);411412WREG32(pb_addr + word_offset, ~mask);413414pb_addr = (mmDMA_QM_1_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;415word_offset = ((mmDMA_QM_1_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;416mask = 1 << ((mmDMA_QM_1_CQ_IFIFO_CNT & 0x7F) >> 2);417mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);418mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);419mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);420mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);421mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);422mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);423mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);424mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);425mask |= 1 << ((mmDMA_QM_1_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);426mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);427mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);428mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);429mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);430mask |= 1 << ((mmDMA_QM_1_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);431432WREG32(pb_addr + word_offset, ~mask);433434goya_pb_set_block(hdev, mmDMA_CH_1_BASE);435436pb_addr = (mmDMA_QM_2_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;437word_offset = ((mmDMA_QM_2_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;438mask = 1 << ((mmDMA_QM_2_GLBL_CFG0 & 0x7F) >> 2);439mask |= 1 << ((mmDMA_QM_2_GLBL_CFG1 & 0x7F) >> 2);440mask |= 1 << ((mmDMA_QM_2_GLBL_PROT & 0x7F) >> 2);441mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_CFG & 0x7F) >> 2);442mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_LO & 0x7F) >> 2);443mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_HI & 0x7F) >> 2);444mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_WDATA & 0x7F) >> 2);445mask |= 1 << ((mmDMA_QM_2_GLBL_SECURE_PROPS & 0x7F) >> 2);446mask |= 1 << ((mmDMA_QM_2_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);447mask |= 1 << ((mmDMA_QM_2_GLBL_STS0 & 0x7F) >> 2);448mask |= 1 << ((mmDMA_QM_2_GLBL_STS1 & 0x7F) >> 2);449mask |= 1 << ((mmDMA_QM_2_PQ_BASE_LO & 0x7F) >> 2);450mask |= 1 << ((mmDMA_QM_2_PQ_BASE_HI & 0x7F) >> 2);451mask |= 1 << ((mmDMA_QM_2_PQ_SIZE & 0x7F) >> 2);452mask |= 1 << ((mmDMA_QM_2_PQ_PI & 0x7F) >> 2);453mask |= 1 << ((mmDMA_QM_2_PQ_CI & 0x7F) >> 2);454mask |= 1 << ((mmDMA_QM_2_PQ_CFG0 & 0x7F) >> 2);455mask |= 1 << ((mmDMA_QM_2_PQ_CFG1 & 0x7F) >> 2);456mask |= 1 << ((mmDMA_QM_2_PQ_ARUSER & 0x7F) >> 2);457458WREG32(pb_addr + word_offset, ~mask);459460pb_addr = (mmDMA_QM_2_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;461word_offset = ((mmDMA_QM_2_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;462mask = 1 << ((mmDMA_QM_2_PQ_PUSH0 & 0x7F) >> 2);463mask |= 1 << ((mmDMA_QM_2_PQ_PUSH1 & 0x7F) >> 2);464mask |= 1 << ((mmDMA_QM_2_PQ_PUSH2 & 0x7F) >> 2);465mask |= 1 << ((mmDMA_QM_2_PQ_PUSH3 & 0x7F) >> 2);466mask |= 1 << ((mmDMA_QM_2_PQ_STS0 & 0x7F) >> 2);467mask |= 1 << ((mmDMA_QM_2_PQ_STS1 & 0x7F) >> 2);468mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);469mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);470mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);471mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);472mask |= 1 << ((mmDMA_QM_2_CQ_CFG0 & 0x7F) >> 2);473mask |= 1 << ((mmDMA_QM_2_CQ_CFG1 & 0x7F) >> 2);474mask |= 1 << ((mmDMA_QM_2_CQ_ARUSER & 0x7F) >> 2);475mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO & 0x7F) >> 2);476mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI & 0x7F) >> 2);477mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE & 0x7F) >> 2);478mask |= 1 << ((mmDMA_QM_2_CQ_CTL & 0x7F) >> 2);479mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO_STS & 0x7F) >> 2);480mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI_STS & 0x7F) >> 2);481mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE_STS & 0x7F) >> 2);482mask |= 1 << ((mmDMA_QM_2_CQ_CTL_STS & 0x7F) >> 2);483mask |= 1 << ((mmDMA_QM_2_CQ_STS0 & 0x7F) >> 2);484mask |= 1 << ((mmDMA_QM_2_CQ_STS1 & 0x7F) >> 2);485mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);486mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);487mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);488mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);489490WREG32(pb_addr + word_offset, ~mask);491492pb_addr = (mmDMA_QM_2_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;493word_offset = ((mmDMA_QM_2_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;494mask = 1 << ((mmDMA_QM_2_CQ_IFIFO_CNT & 0x7F) >> 2);495mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);496mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);497mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);498mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);499mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);500mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);501mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);502mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);503mask |= 1 << ((mmDMA_QM_2_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);504mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);505mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);506mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);507mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);508mask |= 1 << ((mmDMA_QM_2_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);509510WREG32(pb_addr + word_offset, ~mask);511512goya_pb_set_block(hdev, mmDMA_CH_2_BASE);513514pb_addr = (mmDMA_QM_3_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;515word_offset = ((mmDMA_QM_3_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;516mask = 1 << ((mmDMA_QM_3_GLBL_CFG0 & 0x7F) >> 2);517mask |= 1 << ((mmDMA_QM_3_GLBL_CFG1 & 0x7F) >> 2);518mask |= 1 << ((mmDMA_QM_3_GLBL_PROT & 0x7F) >> 2);519mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_CFG & 0x7F) >> 2);520mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_LO & 0x7F) >> 2);521mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_HI & 0x7F) >> 2);522mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_WDATA & 0x7F) >> 2);523mask |= 1 << ((mmDMA_QM_3_GLBL_SECURE_PROPS & 0x7F) >> 2);524mask |= 1 << ((mmDMA_QM_3_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);525mask |= 1 << ((mmDMA_QM_3_GLBL_STS0 & 0x7F) >> 2);526mask |= 1 << ((mmDMA_QM_3_GLBL_STS1 & 0x7F) >> 2);527mask |= 1 << ((mmDMA_QM_3_PQ_BASE_LO & 0x7F) >> 2);528mask |= 1 << ((mmDMA_QM_3_PQ_BASE_HI & 0x7F) >> 2);529mask |= 1 << ((mmDMA_QM_3_PQ_SIZE & 0x7F) >> 2);530mask |= 1 << ((mmDMA_QM_3_PQ_PI & 0x7F) >> 2);531mask |= 1 << ((mmDMA_QM_3_PQ_CI & 0x7F) >> 2);532mask |= 1 << ((mmDMA_QM_3_PQ_CFG0 & 0x7F) >> 2);533mask |= 1 << ((mmDMA_QM_3_PQ_CFG1 & 0x7F) >> 2);534mask |= 1 << ((mmDMA_QM_3_PQ_ARUSER & 0x7F) >> 2);535536WREG32(pb_addr + word_offset, ~mask);537538pb_addr = (mmDMA_QM_3_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;539word_offset = ((mmDMA_QM_3_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;540mask = 1 << ((mmDMA_QM_3_PQ_PUSH0 & 0x7F) >> 2);541mask |= 1 << ((mmDMA_QM_3_PQ_PUSH1 & 0x7F) >> 2);542mask |= 1 << ((mmDMA_QM_3_PQ_PUSH2 & 0x7F) >> 2);543mask |= 1 << ((mmDMA_QM_3_PQ_PUSH3 & 0x7F) >> 2);544mask |= 1 << ((mmDMA_QM_3_PQ_STS0 & 0x7F) >> 2);545mask |= 1 << ((mmDMA_QM_3_PQ_STS1 & 0x7F) >> 2);546mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);547mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);548mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);549mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);550mask |= 1 << ((mmDMA_QM_3_CQ_CFG0 & 0x7F) >> 2);551mask |= 1 << ((mmDMA_QM_3_CQ_CFG1 & 0x7F) >> 2);552mask |= 1 << ((mmDMA_QM_3_CQ_ARUSER & 0x7F) >> 2);553mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO & 0x7F) >> 2);554mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI & 0x7F) >> 2);555mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE & 0x7F) >> 2);556mask |= 1 << ((mmDMA_QM_3_CQ_CTL & 0x7F) >> 2);557mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO_STS & 0x7F) >> 2);558mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI_STS & 0x7F) >> 2);559mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE_STS & 0x7F) >> 2);560mask |= 1 << ((mmDMA_QM_3_CQ_CTL_STS & 0x7F) >> 2);561mask |= 1 << ((mmDMA_QM_3_CQ_STS0 & 0x7F) >> 2);562mask |= 1 << ((mmDMA_QM_3_CQ_STS1 & 0x7F) >> 2);563mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);564mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);565mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);566mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);567568WREG32(pb_addr + word_offset, ~mask);569570pb_addr = (mmDMA_QM_3_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;571word_offset = ((mmDMA_QM_3_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;572mask = 1 << ((mmDMA_QM_3_CQ_IFIFO_CNT & 0x7F) >> 2);573mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);574mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);575mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);576mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);577mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);578mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);579mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);580mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);581mask |= 1 << ((mmDMA_QM_3_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);582mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);583mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);584mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);585mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);586mask |= 1 << ((mmDMA_QM_3_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);587588WREG32(pb_addr + word_offset, ~mask);589590goya_pb_set_block(hdev, mmDMA_CH_3_BASE);591592pb_addr = (mmDMA_QM_4_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;593word_offset = ((mmDMA_QM_4_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;594mask = 1 << ((mmDMA_QM_4_GLBL_CFG0 & 0x7F) >> 2);595mask |= 1 << ((mmDMA_QM_4_GLBL_CFG1 & 0x7F) >> 2);596mask |= 1 << ((mmDMA_QM_4_GLBL_PROT & 0x7F) >> 2);597mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_CFG & 0x7F) >> 2);598mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_LO & 0x7F) >> 2);599mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_HI & 0x7F) >> 2);600mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_WDATA & 0x7F) >> 2);601mask |= 1 << ((mmDMA_QM_4_GLBL_SECURE_PROPS & 0x7F) >> 2);602mask |= 1 << ((mmDMA_QM_4_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);603mask |= 1 << ((mmDMA_QM_4_GLBL_STS0 & 0x7F) >> 2);604mask |= 1 << ((mmDMA_QM_4_GLBL_STS1 & 0x7F) >> 2);605mask |= 1 << ((mmDMA_QM_4_PQ_BASE_LO & 0x7F) >> 2);606mask |= 1 << ((mmDMA_QM_4_PQ_BASE_HI & 0x7F) >> 2);607mask |= 1 << ((mmDMA_QM_4_PQ_SIZE & 0x7F) >> 2);608mask |= 1 << ((mmDMA_QM_4_PQ_PI & 0x7F) >> 2);609mask |= 1 << ((mmDMA_QM_4_PQ_CI & 0x7F) >> 2);610mask |= 1 << ((mmDMA_QM_4_PQ_CFG0 & 0x7F) >> 2);611mask |= 1 << ((mmDMA_QM_4_PQ_CFG1 & 0x7F) >> 2);612mask |= 1 << ((mmDMA_QM_4_PQ_ARUSER & 0x7F) >> 2);613614WREG32(pb_addr + word_offset, ~mask);615616pb_addr = (mmDMA_QM_4_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;617word_offset = ((mmDMA_QM_4_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;618mask = 1 << ((mmDMA_QM_4_PQ_PUSH0 & 0x7F) >> 2);619mask |= 1 << ((mmDMA_QM_4_PQ_PUSH1 & 0x7F) >> 2);620mask |= 1 << ((mmDMA_QM_4_PQ_PUSH2 & 0x7F) >> 2);621mask |= 1 << ((mmDMA_QM_4_PQ_PUSH3 & 0x7F) >> 2);622mask |= 1 << ((mmDMA_QM_4_PQ_STS0 & 0x7F) >> 2);623mask |= 1 << ((mmDMA_QM_4_PQ_STS1 & 0x7F) >> 2);624mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);625mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);626mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);627mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);628mask |= 1 << ((mmDMA_QM_4_CQ_CFG0 & 0x7F) >> 2);629mask |= 1 << ((mmDMA_QM_4_CQ_CFG1 & 0x7F) >> 2);630mask |= 1 << ((mmDMA_QM_4_CQ_ARUSER & 0x7F) >> 2);631mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO & 0x7F) >> 2);632mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI & 0x7F) >> 2);633mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE & 0x7F) >> 2);634mask |= 1 << ((mmDMA_QM_4_CQ_CTL & 0x7F) >> 2);635mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO_STS & 0x7F) >> 2);636mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI_STS & 0x7F) >> 2);637mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE_STS & 0x7F) >> 2);638mask |= 1 << ((mmDMA_QM_4_CQ_CTL_STS & 0x7F) >> 2);639mask |= 1 << ((mmDMA_QM_4_CQ_STS0 & 0x7F) >> 2);640mask |= 1 << ((mmDMA_QM_4_CQ_STS1 & 0x7F) >> 2);641mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);642mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);643mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);644mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);645646WREG32(pb_addr + word_offset, ~mask);647648pb_addr = (mmDMA_QM_4_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;649word_offset = ((mmDMA_QM_4_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;650mask = 1 << ((mmDMA_QM_4_CQ_IFIFO_CNT & 0x7F) >> 2);651mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);652mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);653mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);654mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);655mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);656mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);657mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);658mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);659mask |= 1 << ((mmDMA_QM_4_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);660mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);661mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);662mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);663mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);664mask |= 1 << ((mmDMA_QM_4_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);665666WREG32(pb_addr + word_offset, ~mask);667668goya_pb_set_block(hdev, mmDMA_CH_4_BASE);669}670671static void goya_init_tpc_protection_bits(struct hl_device *hdev)672{673u32 pb_addr, mask;674u8 word_offset;675676goya_pb_set_block(hdev, mmTPC0_RD_REGULATOR_BASE);677goya_pb_set_block(hdev, mmTPC0_WR_REGULATOR_BASE);678679pb_addr = (mmTPC0_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;680word_offset = ((mmTPC0_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;681682mask = 1 << ((mmTPC0_CFG_SEMAPHORE & 0x7F) >> 2);683mask |= 1 << ((mmTPC0_CFG_VFLAGS & 0x7F) >> 2);684mask |= 1 << ((mmTPC0_CFG_SFLAGS & 0x7F) >> 2);685mask |= 1 << ((mmTPC0_CFG_STATUS & 0x7F) >> 2);686687WREG32(pb_addr + word_offset, ~mask);688689pb_addr = (mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;690word_offset = ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH &691PROT_BITS_OFFS) >> 7) << 2;692mask = 1 << ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);693mask |= 1 << ((mmTPC0_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);694mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);695mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);696mask |= 1 << ((mmTPC0_CFG_TPC_STALL & 0x7F) >> 2);697mask |= 1 << ((mmTPC0_CFG_MSS_CONFIG & 0x7F) >> 2);698mask |= 1 << ((mmTPC0_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);699mask |= 1 << ((mmTPC0_CFG_TPC_INTR_MASK & 0x7F) >> 2);700701WREG32(pb_addr + word_offset, ~mask);702703pb_addr = (mmTPC0_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;704word_offset = ((mmTPC0_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;705mask = 1 << ((mmTPC0_CFG_ARUSER & 0x7F) >> 2);706mask |= 1 << ((mmTPC0_CFG_AWUSER & 0x7F) >> 2);707708WREG32(pb_addr + word_offset, ~mask);709710pb_addr = (mmTPC0_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;711word_offset = ((mmTPC0_CFG_FUNC_MBIST_CNTRL &712PROT_BITS_OFFS) >> 7) << 2;713mask = 1 << ((mmTPC0_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);714mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);715mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);716mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);717mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);718mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);719mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);720mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);721mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);722mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);723mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);724mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);725726WREG32(pb_addr + word_offset, ~mask);727728pb_addr = (mmTPC0_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;729word_offset = ((mmTPC0_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;730mask = 1 << ((mmTPC0_QM_GLBL_CFG0 & 0x7F) >> 2);731mask |= 1 << ((mmTPC0_QM_GLBL_CFG1 & 0x7F) >> 2);732mask |= 1 << ((mmTPC0_QM_GLBL_PROT & 0x7F) >> 2);733mask |= 1 << ((mmTPC0_QM_GLBL_ERR_CFG & 0x7F) >> 2);734mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);735mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);736mask |= 1 << ((mmTPC0_QM_GLBL_ERR_WDATA & 0x7F) >> 2);737mask |= 1 << ((mmTPC0_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);738mask |= 1 << ((mmTPC0_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);739mask |= 1 << ((mmTPC0_QM_GLBL_STS0 & 0x7F) >> 2);740mask |= 1 << ((mmTPC0_QM_GLBL_STS1 & 0x7F) >> 2);741mask |= 1 << ((mmTPC0_QM_PQ_BASE_LO & 0x7F) >> 2);742mask |= 1 << ((mmTPC0_QM_PQ_BASE_HI & 0x7F) >> 2);743mask |= 1 << ((mmTPC0_QM_PQ_SIZE & 0x7F) >> 2);744mask |= 1 << ((mmTPC0_QM_PQ_PI & 0x7F) >> 2);745mask |= 1 << ((mmTPC0_QM_PQ_CI & 0x7F) >> 2);746mask |= 1 << ((mmTPC0_QM_PQ_CFG0 & 0x7F) >> 2);747mask |= 1 << ((mmTPC0_QM_PQ_CFG1 & 0x7F) >> 2);748mask |= 1 << ((mmTPC0_QM_PQ_ARUSER & 0x7F) >> 2);749750WREG32(pb_addr + word_offset, ~mask);751752pb_addr = (mmTPC0_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;753word_offset = ((mmTPC0_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;754mask = 1 << ((mmTPC0_QM_PQ_PUSH0 & 0x7F) >> 2);755mask |= 1 << ((mmTPC0_QM_PQ_PUSH1 & 0x7F) >> 2);756mask |= 1 << ((mmTPC0_QM_PQ_PUSH2 & 0x7F) >> 2);757mask |= 1 << ((mmTPC0_QM_PQ_PUSH3 & 0x7F) >> 2);758mask |= 1 << ((mmTPC0_QM_PQ_STS0 & 0x7F) >> 2);759mask |= 1 << ((mmTPC0_QM_PQ_STS1 & 0x7F) >> 2);760mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);761mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);762mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);763mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);764mask |= 1 << ((mmTPC0_QM_CQ_CFG0 & 0x7F) >> 2);765mask |= 1 << ((mmTPC0_QM_CQ_CFG1 & 0x7F) >> 2);766mask |= 1 << ((mmTPC0_QM_CQ_ARUSER & 0x7F) >> 2);767mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO & 0x7F) >> 2);768mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI & 0x7F) >> 2);769mask |= 1 << ((mmTPC0_QM_CQ_TSIZE & 0x7F) >> 2);770mask |= 1 << ((mmTPC0_QM_CQ_CTL & 0x7F) >> 2);771mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO_STS & 0x7F) >> 2);772mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI_STS & 0x7F) >> 2);773mask |= 1 << ((mmTPC0_QM_CQ_TSIZE_STS & 0x7F) >> 2);774mask |= 1 << ((mmTPC0_QM_CQ_CTL_STS & 0x7F) >> 2);775mask |= 1 << ((mmTPC0_QM_CQ_STS0 & 0x7F) >> 2);776mask |= 1 << ((mmTPC0_QM_CQ_STS1 & 0x7F) >> 2);777mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);778mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);779mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);780mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);781782WREG32(pb_addr + word_offset, ~mask);783784pb_addr = (mmTPC0_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;785word_offset = ((mmTPC0_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;786mask = 1 << ((mmTPC0_QM_CQ_IFIFO_CNT & 0x7F) >> 2);787mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);788mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);789mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);790mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);791mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);792mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);793mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);794mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);795mask |= 1 << ((mmTPC0_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);796mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);797mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);798mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);799mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);800mask |= 1 << ((mmTPC0_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);801802WREG32(pb_addr + word_offset, ~mask);803804pb_addr = (mmTPC0_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;805word_offset = ((mmTPC0_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;806mask = 1 << ((mmTPC0_CMDQ_GLBL_CFG0 & 0x7F) >> 2);807mask |= 1 << ((mmTPC0_CMDQ_GLBL_CFG1 & 0x7F) >> 2);808mask |= 1 << ((mmTPC0_CMDQ_GLBL_PROT & 0x7F) >> 2);809mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);810mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);811mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);812mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);813mask |= 1 << ((mmTPC0_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);814mask |= 1 << ((mmTPC0_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);815mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS0 & 0x7F) >> 2);816mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS1 & 0x7F) >> 2);817818WREG32(pb_addr + word_offset, ~mask);819820pb_addr = (mmTPC0_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;821word_offset = ((mmTPC0_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;822mask = 1 << ((mmTPC0_CMDQ_CQ_CFG0 & 0x7F) >> 2);823mask |= 1 << ((mmTPC0_CMDQ_CQ_CFG1 & 0x7F) >> 2);824mask |= 1 << ((mmTPC0_CMDQ_CQ_ARUSER & 0x7F) >> 2);825mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);826mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);827mask |= 1 << ((mmTPC0_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);828mask |= 1 << ((mmTPC0_CMDQ_CQ_CTL_STS & 0x7F) >> 2);829mask |= 1 << ((mmTPC0_CMDQ_CQ_STS0 & 0x7F) >> 2);830mask |= 1 << ((mmTPC0_CMDQ_CQ_STS1 & 0x7F) >> 2);831mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);832mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);833mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);834mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);835836WREG32(pb_addr + word_offset, ~mask);837838pb_addr = (mmTPC0_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;839word_offset = ((mmTPC0_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;840mask = 1 << ((mmTPC0_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);841mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);842mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);843mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);844mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);845mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);846mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);847mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);848mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);849mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);850mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);851mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);852mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);853mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);854mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);855mask |= 1 << ((mmTPC0_CMDQ_CP_STS & 0x7F) >> 2);856mask |= 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);857858WREG32(pb_addr + word_offset, ~mask);859860pb_addr = (mmTPC0_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;861word_offset = ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)862<< 2;863mask = 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);864mask |= 1 << ((mmTPC0_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);865mask |= 1 << ((mmTPC0_CMDQ_CP_DBG_0 & 0x7F) >> 2);866mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);867mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);868869WREG32(pb_addr + word_offset, ~mask);870871goya_pb_set_block(hdev, mmTPC1_RTR_BASE);872goya_pb_set_block(hdev, mmTPC1_RD_REGULATOR_BASE);873goya_pb_set_block(hdev, mmTPC1_WR_REGULATOR_BASE);874875pb_addr = (mmTPC1_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;876word_offset = ((mmTPC1_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;877878mask = 1 << ((mmTPC1_CFG_SEMAPHORE & 0x7F) >> 2);879mask |= 1 << ((mmTPC1_CFG_VFLAGS & 0x7F) >> 2);880mask |= 1 << ((mmTPC1_CFG_SFLAGS & 0x7F) >> 2);881mask |= 1 << ((mmTPC1_CFG_STATUS & 0x7F) >> 2);882883WREG32(pb_addr + word_offset, ~mask);884885pb_addr = (mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;886word_offset = ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH &887PROT_BITS_OFFS) >> 7) << 2;888mask = 1 << ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);889mask |= 1 << ((mmTPC1_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);890mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);891mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);892mask |= 1 << ((mmTPC1_CFG_TPC_STALL & 0x7F) >> 2);893mask |= 1 << ((mmTPC1_CFG_MSS_CONFIG & 0x7F) >> 2);894mask |= 1 << ((mmTPC1_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);895mask |= 1 << ((mmTPC1_CFG_TPC_INTR_MASK & 0x7F) >> 2);896897WREG32(pb_addr + word_offset, ~mask);898899pb_addr = (mmTPC1_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;900word_offset = ((mmTPC1_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;901mask = 1 << ((mmTPC1_CFG_ARUSER & 0x7F) >> 2);902mask |= 1 << ((mmTPC1_CFG_AWUSER & 0x7F) >> 2);903904WREG32(pb_addr + word_offset, ~mask);905906pb_addr = (mmTPC1_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;907word_offset = ((mmTPC1_CFG_FUNC_MBIST_CNTRL & PROT_BITS_OFFS) >> 7)908<< 2;909mask = 1 << ((mmTPC1_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);910mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);911mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);912mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);913mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);914mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);915mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);916mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);917mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);918mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);919mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);920mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);921922WREG32(pb_addr + word_offset, ~mask);923924pb_addr = (mmTPC1_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;925word_offset = ((mmTPC1_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;926mask = 1 << ((mmTPC1_QM_GLBL_CFG0 & 0x7F) >> 2);927mask |= 1 << ((mmTPC1_QM_GLBL_CFG1 & 0x7F) >> 2);928mask |= 1 << ((mmTPC1_QM_GLBL_PROT & 0x7F) >> 2);929mask |= 1 << ((mmTPC1_QM_GLBL_ERR_CFG & 0x7F) >> 2);930mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);931mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);932mask |= 1 << ((mmTPC1_QM_GLBL_ERR_WDATA & 0x7F) >> 2);933mask |= 1 << ((mmTPC1_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);934mask |= 1 << ((mmTPC1_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);935mask |= 1 << ((mmTPC1_QM_GLBL_STS0 & 0x7F) >> 2);936mask |= 1 << ((mmTPC1_QM_GLBL_STS1 & 0x7F) >> 2);937mask |= 1 << ((mmTPC1_QM_PQ_BASE_LO & 0x7F) >> 2);938mask |= 1 << ((mmTPC1_QM_PQ_BASE_HI & 0x7F) >> 2);939mask |= 1 << ((mmTPC1_QM_PQ_SIZE & 0x7F) >> 2);940mask |= 1 << ((mmTPC1_QM_PQ_PI & 0x7F) >> 2);941mask |= 1 << ((mmTPC1_QM_PQ_CI & 0x7F) >> 2);942mask |= 1 << ((mmTPC1_QM_PQ_CFG0 & 0x7F) >> 2);943mask |= 1 << ((mmTPC1_QM_PQ_CFG1 & 0x7F) >> 2);944mask |= 1 << ((mmTPC1_QM_PQ_ARUSER & 0x7F) >> 2);945946WREG32(pb_addr + word_offset, ~mask);947948pb_addr = (mmTPC1_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;949word_offset = ((mmTPC1_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;950mask = 1 << ((mmTPC1_QM_PQ_PUSH0 & 0x7F) >> 2);951mask |= 1 << ((mmTPC1_QM_PQ_PUSH1 & 0x7F) >> 2);952mask |= 1 << ((mmTPC1_QM_PQ_PUSH2 & 0x7F) >> 2);953mask |= 1 << ((mmTPC1_QM_PQ_PUSH3 & 0x7F) >> 2);954mask |= 1 << ((mmTPC1_QM_PQ_STS0 & 0x7F) >> 2);955mask |= 1 << ((mmTPC1_QM_PQ_STS1 & 0x7F) >> 2);956mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);957mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);958mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);959mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);960mask |= 1 << ((mmTPC1_QM_CQ_CFG0 & 0x7F) >> 2);961mask |= 1 << ((mmTPC1_QM_CQ_CFG1 & 0x7F) >> 2);962mask |= 1 << ((mmTPC1_QM_CQ_ARUSER & 0x7F) >> 2);963mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO & 0x7F) >> 2);964mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI & 0x7F) >> 2);965mask |= 1 << ((mmTPC1_QM_CQ_TSIZE & 0x7F) >> 2);966mask |= 1 << ((mmTPC1_QM_CQ_CTL & 0x7F) >> 2);967mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO_STS & 0x7F) >> 2);968mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI_STS & 0x7F) >> 2);969mask |= 1 << ((mmTPC1_QM_CQ_TSIZE_STS & 0x7F) >> 2);970mask |= 1 << ((mmTPC1_QM_CQ_CTL_STS & 0x7F) >> 2);971mask |= 1 << ((mmTPC1_QM_CQ_STS0 & 0x7F) >> 2);972mask |= 1 << ((mmTPC1_QM_CQ_STS1 & 0x7F) >> 2);973mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);974mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);975mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);976mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);977978WREG32(pb_addr + word_offset, ~mask);979980pb_addr = (mmTPC1_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;981word_offset = ((mmTPC1_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;982mask = 1 << ((mmTPC1_QM_CQ_IFIFO_CNT & 0x7F) >> 2);983mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);984mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);985mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);986mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);987mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);988mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);989mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);990mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);991mask |= 1 << ((mmTPC1_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);992mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);993mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);994mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);995mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);996mask |= 1 << ((mmTPC1_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);997998WREG32(pb_addr + word_offset, ~mask);9991000pb_addr = (mmTPC1_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1001word_offset = ((mmTPC1_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1002mask = 1 << ((mmTPC1_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1003mask |= 1 << ((mmTPC1_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1004mask |= 1 << ((mmTPC1_CMDQ_GLBL_PROT & 0x7F) >> 2);1005mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1006mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1007mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1008mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1009mask |= 1 << ((mmTPC1_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1010mask |= 1 << ((mmTPC1_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1011mask |= 1 << ((mmTPC1_CMDQ_GLBL_STS0 & 0x7F) >> 2);1012mask |= 1 << ((mmTPC1_CMDQ_GLBL_STS1 & 0x7F) >> 2);10131014WREG32(pb_addr + word_offset, ~mask);10151016pb_addr = (mmTPC1_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1017word_offset = ((mmTPC1_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1018mask = 1 << ((mmTPC1_CMDQ_CQ_CFG0 & 0x7F) >> 2);1019mask |= 1 << ((mmTPC1_CMDQ_CQ_CFG1 & 0x7F) >> 2);1020mask |= 1 << ((mmTPC1_CMDQ_CQ_ARUSER & 0x7F) >> 2);1021mask |= 1 << ((mmTPC1_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);1022mask |= 1 << ((mmTPC1_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);1023mask |= 1 << ((mmTPC1_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);1024mask |= 1 << ((mmTPC1_CMDQ_CQ_CTL_STS & 0x7F) >> 2);1025mask |= 1 << ((mmTPC1_CMDQ_CQ_STS0 & 0x7F) >> 2);1026mask |= 1 << ((mmTPC1_CMDQ_CQ_STS1 & 0x7F) >> 2);1027mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1028mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1029mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1030mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);10311032WREG32(pb_addr + word_offset, ~mask);10331034pb_addr = (mmTPC1_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1035word_offset = ((mmTPC1_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1036mask = 1 << ((mmTPC1_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);1037mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1038mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1039mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1040mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1041mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1042mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1043mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1044mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1045mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1046mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1047mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1048mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1049mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1050mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);1051mask |= 1 << ((mmTPC1_CMDQ_CP_STS & 0x7F) >> 2);1052mask |= 1 << ((mmTPC1_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);10531054WREG32(pb_addr + word_offset, ~mask);10551056pb_addr = (mmTPC1_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;1057word_offset = ((mmTPC1_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)1058<< 2;1059mask = 1 << ((mmTPC1_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);1060mask |= 1 << ((mmTPC1_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);1061mask |= 1 << ((mmTPC1_CMDQ_CP_DBG_0 & 0x7F) >> 2);1062mask |= 1 << ((mmTPC1_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);1063mask |= 1 << ((mmTPC1_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);10641065WREG32(pb_addr + word_offset, ~mask);10661067goya_pb_set_block(hdev, mmTPC2_RTR_BASE);1068goya_pb_set_block(hdev, mmTPC2_RD_REGULATOR_BASE);1069goya_pb_set_block(hdev, mmTPC2_WR_REGULATOR_BASE);10701071pb_addr = (mmTPC2_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;1072word_offset = ((mmTPC2_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;10731074mask = 1 << ((mmTPC2_CFG_SEMAPHORE & 0x7F) >> 2);1075mask |= 1 << ((mmTPC2_CFG_VFLAGS & 0x7F) >> 2);1076mask |= 1 << ((mmTPC2_CFG_SFLAGS & 0x7F) >> 2);1077mask |= 1 << ((mmTPC2_CFG_STATUS & 0x7F) >> 2);10781079WREG32(pb_addr + word_offset, ~mask);10801081pb_addr = (mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;1082word_offset = ((mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH &1083PROT_BITS_OFFS) >> 7) << 2;1084mask = 1 << ((mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);1085mask |= 1 << ((mmTPC2_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);1086mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);1087mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);1088mask |= 1 << ((mmTPC2_CFG_TPC_STALL & 0x7F) >> 2);1089mask |= 1 << ((mmTPC2_CFG_MSS_CONFIG & 0x7F) >> 2);1090mask |= 1 << ((mmTPC2_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);1091mask |= 1 << ((mmTPC2_CFG_TPC_INTR_MASK & 0x7F) >> 2);10921093WREG32(pb_addr + word_offset, ~mask);10941095pb_addr = (mmTPC2_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;1096word_offset = ((mmTPC2_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;1097mask = 1 << ((mmTPC2_CFG_ARUSER & 0x7F) >> 2);1098mask |= 1 << ((mmTPC2_CFG_AWUSER & 0x7F) >> 2);10991100WREG32(pb_addr + word_offset, ~mask);11011102pb_addr = (mmTPC2_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;1103word_offset = ((mmTPC2_CFG_FUNC_MBIST_CNTRL & PROT_BITS_OFFS) >> 7)1104<< 2;1105mask = 1 << ((mmTPC2_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);1106mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);1107mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);1108mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);1109mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);1110mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);1111mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);1112mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);1113mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);1114mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);1115mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);1116mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);11171118WREG32(pb_addr + word_offset, ~mask);11191120pb_addr = (mmTPC2_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1121word_offset = ((mmTPC2_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1122mask = 1 << ((mmTPC2_QM_GLBL_CFG0 & 0x7F) >> 2);1123mask |= 1 << ((mmTPC2_QM_GLBL_CFG1 & 0x7F) >> 2);1124mask |= 1 << ((mmTPC2_QM_GLBL_PROT & 0x7F) >> 2);1125mask |= 1 << ((mmTPC2_QM_GLBL_ERR_CFG & 0x7F) >> 2);1126mask |= 1 << ((mmTPC2_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1127mask |= 1 << ((mmTPC2_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1128mask |= 1 << ((mmTPC2_QM_GLBL_ERR_WDATA & 0x7F) >> 2);1129mask |= 1 << ((mmTPC2_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);1130mask |= 1 << ((mmTPC2_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1131mask |= 1 << ((mmTPC2_QM_GLBL_STS0 & 0x7F) >> 2);1132mask |= 1 << ((mmTPC2_QM_GLBL_STS1 & 0x7F) >> 2);1133mask |= 1 << ((mmTPC2_QM_PQ_BASE_LO & 0x7F) >> 2);1134mask |= 1 << ((mmTPC2_QM_PQ_BASE_HI & 0x7F) >> 2);1135mask |= 1 << ((mmTPC2_QM_PQ_SIZE & 0x7F) >> 2);1136mask |= 1 << ((mmTPC2_QM_PQ_PI & 0x7F) >> 2);1137mask |= 1 << ((mmTPC2_QM_PQ_CI & 0x7F) >> 2);1138mask |= 1 << ((mmTPC2_QM_PQ_CFG0 & 0x7F) >> 2);1139mask |= 1 << ((mmTPC2_QM_PQ_CFG1 & 0x7F) >> 2);1140mask |= 1 << ((mmTPC2_QM_PQ_ARUSER & 0x7F) >> 2);11411142WREG32(pb_addr + word_offset, ~mask);11431144pb_addr = (mmTPC2_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;1145word_offset = ((mmTPC2_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;1146mask = 1 << ((mmTPC2_QM_PQ_PUSH0 & 0x7F) >> 2);1147mask |= 1 << ((mmTPC2_QM_PQ_PUSH1 & 0x7F) >> 2);1148mask |= 1 << ((mmTPC2_QM_PQ_PUSH2 & 0x7F) >> 2);1149mask |= 1 << ((mmTPC2_QM_PQ_PUSH3 & 0x7F) >> 2);1150mask |= 1 << ((mmTPC2_QM_PQ_STS0 & 0x7F) >> 2);1151mask |= 1 << ((mmTPC2_QM_PQ_STS1 & 0x7F) >> 2);1152mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);1153mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1154mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1155mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);1156mask |= 1 << ((mmTPC2_QM_CQ_CFG0 & 0x7F) >> 2);1157mask |= 1 << ((mmTPC2_QM_CQ_CFG1 & 0x7F) >> 2);1158mask |= 1 << ((mmTPC2_QM_CQ_ARUSER & 0x7F) >> 2);1159mask |= 1 << ((mmTPC2_QM_CQ_PTR_LO & 0x7F) >> 2);1160mask |= 1 << ((mmTPC2_QM_CQ_PTR_HI & 0x7F) >> 2);1161mask |= 1 << ((mmTPC2_QM_CQ_TSIZE & 0x7F) >> 2);1162mask |= 1 << ((mmTPC2_QM_CQ_CTL & 0x7F) >> 2);1163mask |= 1 << ((mmTPC2_QM_CQ_PTR_LO_STS & 0x7F) >> 2);1164mask |= 1 << ((mmTPC2_QM_CQ_PTR_HI_STS & 0x7F) >> 2);1165mask |= 1 << ((mmTPC2_QM_CQ_TSIZE_STS & 0x7F) >> 2);1166mask |= 1 << ((mmTPC2_QM_CQ_CTL_STS & 0x7F) >> 2);1167mask |= 1 << ((mmTPC2_QM_CQ_STS0 & 0x7F) >> 2);1168mask |= 1 << ((mmTPC2_QM_CQ_STS1 & 0x7F) >> 2);1169mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1170mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1171mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1172mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);11731174WREG32(pb_addr + word_offset, ~mask);11751176pb_addr = (mmTPC2_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1177word_offset = ((mmTPC2_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1178mask = 1 << ((mmTPC2_QM_CQ_IFIFO_CNT & 0x7F) >> 2);1179mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1180mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1181mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1182mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1183mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1184mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1185mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1186mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1187mask |= 1 << ((mmTPC2_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1188mask |= 1 << ((mmTPC2_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1189mask |= 1 << ((mmTPC2_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1190mask |= 1 << ((mmTPC2_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1191mask |= 1 << ((mmTPC2_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1192mask |= 1 << ((mmTPC2_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);11931194WREG32(pb_addr + word_offset, ~mask);11951196pb_addr = (mmTPC2_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1197word_offset = ((mmTPC2_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1198mask = 1 << ((mmTPC2_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1199mask |= 1 << ((mmTPC2_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1200mask |= 1 << ((mmTPC2_CMDQ_GLBL_PROT & 0x7F) >> 2);1201mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1202mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1203mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1204mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1205mask |= 1 << ((mmTPC2_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1206mask |= 1 << ((mmTPC2_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1207mask |= 1 << ((mmTPC2_CMDQ_GLBL_STS0 & 0x7F) >> 2);1208mask |= 1 << ((mmTPC2_CMDQ_GLBL_STS1 & 0x7F) >> 2);12091210WREG32(pb_addr + word_offset, ~mask);12111212pb_addr = (mmTPC2_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1213word_offset = ((mmTPC2_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1214mask = 1 << ((mmTPC2_CMDQ_CQ_CFG0 & 0x7F) >> 2);1215mask |= 1 << ((mmTPC2_CMDQ_CQ_CFG1 & 0x7F) >> 2);1216mask |= 1 << ((mmTPC2_CMDQ_CQ_ARUSER & 0x7F) >> 2);1217mask |= 1 << ((mmTPC2_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);1218mask |= 1 << ((mmTPC2_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);1219mask |= 1 << ((mmTPC2_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);1220mask |= 1 << ((mmTPC2_CMDQ_CQ_CTL_STS & 0x7F) >> 2);1221mask |= 1 << ((mmTPC2_CMDQ_CQ_STS0 & 0x7F) >> 2);1222mask |= 1 << ((mmTPC2_CMDQ_CQ_STS1 & 0x7F) >> 2);1223mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1224mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1225mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1226mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);12271228WREG32(pb_addr + word_offset, ~mask);12291230pb_addr = (mmTPC2_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1231word_offset = ((mmTPC2_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1232mask = 1 << ((mmTPC2_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);1233mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1234mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1235mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1236mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1237mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1238mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1239mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1240mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1241mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1242mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1243mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1244mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1245mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1246mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);1247mask |= 1 << ((mmTPC2_CMDQ_CP_STS & 0x7F) >> 2);1248mask |= 1 << ((mmTPC2_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);12491250WREG32(pb_addr + word_offset, ~mask);12511252pb_addr = (mmTPC2_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;1253word_offset = ((mmTPC2_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)1254<< 2;1255mask = 1 << ((mmTPC2_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);1256mask |= 1 << ((mmTPC2_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);1257mask |= 1 << ((mmTPC2_CMDQ_CP_DBG_0 & 0x7F) >> 2);1258mask |= 1 << ((mmTPC2_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);1259mask |= 1 << ((mmTPC2_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);12601261WREG32(pb_addr + word_offset, ~mask);12621263goya_pb_set_block(hdev, mmTPC3_RTR_BASE);1264goya_pb_set_block(hdev, mmTPC3_RD_REGULATOR_BASE);1265goya_pb_set_block(hdev, mmTPC3_WR_REGULATOR_BASE);12661267pb_addr = (mmTPC3_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;1268word_offset = ((mmTPC3_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;12691270mask = 1 << ((mmTPC3_CFG_SEMAPHORE & 0x7F) >> 2);1271mask |= 1 << ((mmTPC3_CFG_VFLAGS & 0x7F) >> 2);1272mask |= 1 << ((mmTPC3_CFG_SFLAGS & 0x7F) >> 2);1273mask |= 1 << ((mmTPC3_CFG_STATUS & 0x7F) >> 2);12741275WREG32(pb_addr + word_offset, ~mask);12761277pb_addr = (mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;1278word_offset = ((mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH1279& PROT_BITS_OFFS) >> 7) << 2;1280mask = 1 << ((mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);1281mask |= 1 << ((mmTPC3_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);1282mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);1283mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);1284mask |= 1 << ((mmTPC3_CFG_TPC_STALL & 0x7F) >> 2);1285mask |= 1 << ((mmTPC3_CFG_MSS_CONFIG & 0x7F) >> 2);1286mask |= 1 << ((mmTPC3_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);1287mask |= 1 << ((mmTPC3_CFG_TPC_INTR_MASK & 0x7F) >> 2);12881289WREG32(pb_addr + word_offset, ~mask);12901291pb_addr = (mmTPC3_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;1292word_offset = ((mmTPC3_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;1293mask = 1 << ((mmTPC3_CFG_ARUSER & 0x7F) >> 2);1294mask |= 1 << ((mmTPC3_CFG_AWUSER & 0x7F) >> 2);12951296WREG32(pb_addr + word_offset, ~mask);12971298pb_addr = (mmTPC3_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;1299word_offset = ((mmTPC3_CFG_FUNC_MBIST_CNTRL1300& PROT_BITS_OFFS) >> 7) << 2;1301mask = 1 << ((mmTPC3_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);1302mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);1303mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);1304mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);1305mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);1306mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);1307mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);1308mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);1309mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);1310mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);1311mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);1312mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);13131314WREG32(pb_addr + word_offset, ~mask);13151316pb_addr = (mmTPC3_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1317word_offset = ((mmTPC3_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1318mask = 1 << ((mmTPC3_QM_GLBL_CFG0 & 0x7F) >> 2);1319mask |= 1 << ((mmTPC3_QM_GLBL_CFG1 & 0x7F) >> 2);1320mask |= 1 << ((mmTPC3_QM_GLBL_PROT & 0x7F) >> 2);1321mask |= 1 << ((mmTPC3_QM_GLBL_ERR_CFG & 0x7F) >> 2);1322mask |= 1 << ((mmTPC3_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1323mask |= 1 << ((mmTPC3_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1324mask |= 1 << ((mmTPC3_QM_GLBL_ERR_WDATA & 0x7F) >> 2);1325mask |= 1 << ((mmTPC3_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);1326mask |= 1 << ((mmTPC3_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1327mask |= 1 << ((mmTPC3_QM_GLBL_STS0 & 0x7F) >> 2);1328mask |= 1 << ((mmTPC3_QM_GLBL_STS1 & 0x7F) >> 2);1329mask |= 1 << ((mmTPC3_QM_PQ_BASE_LO & 0x7F) >> 2);1330mask |= 1 << ((mmTPC3_QM_PQ_BASE_HI & 0x7F) >> 2);1331mask |= 1 << ((mmTPC3_QM_PQ_SIZE & 0x7F) >> 2);1332mask |= 1 << ((mmTPC3_QM_PQ_PI & 0x7F) >> 2);1333mask |= 1 << ((mmTPC3_QM_PQ_CI & 0x7F) >> 2);1334mask |= 1 << ((mmTPC3_QM_PQ_CFG0 & 0x7F) >> 2);1335mask |= 1 << ((mmTPC3_QM_PQ_CFG1 & 0x7F) >> 2);1336mask |= 1 << ((mmTPC3_QM_PQ_ARUSER & 0x7F) >> 2);13371338WREG32(pb_addr + word_offset, ~mask);13391340pb_addr = (mmTPC3_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;1341word_offset = ((mmTPC3_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;1342mask = 1 << ((mmTPC3_QM_PQ_PUSH0 & 0x7F) >> 2);1343mask |= 1 << ((mmTPC3_QM_PQ_PUSH1 & 0x7F) >> 2);1344mask |= 1 << ((mmTPC3_QM_PQ_PUSH2 & 0x7F) >> 2);1345mask |= 1 << ((mmTPC3_QM_PQ_PUSH3 & 0x7F) >> 2);1346mask |= 1 << ((mmTPC3_QM_PQ_STS0 & 0x7F) >> 2);1347mask |= 1 << ((mmTPC3_QM_PQ_STS1 & 0x7F) >> 2);1348mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);1349mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1350mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1351mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);1352mask |= 1 << ((mmTPC3_QM_CQ_CFG0 & 0x7F) >> 2);1353mask |= 1 << ((mmTPC3_QM_CQ_CFG1 & 0x7F) >> 2);1354mask |= 1 << ((mmTPC3_QM_CQ_ARUSER & 0x7F) >> 2);1355mask |= 1 << ((mmTPC3_QM_CQ_PTR_LO & 0x7F) >> 2);1356mask |= 1 << ((mmTPC3_QM_CQ_PTR_HI & 0x7F) >> 2);1357mask |= 1 << ((mmTPC3_QM_CQ_TSIZE & 0x7F) >> 2);1358mask |= 1 << ((mmTPC3_QM_CQ_CTL & 0x7F) >> 2);1359mask |= 1 << ((mmTPC3_QM_CQ_PTR_LO_STS & 0x7F) >> 2);1360mask |= 1 << ((mmTPC3_QM_CQ_PTR_HI_STS & 0x7F) >> 2);1361mask |= 1 << ((mmTPC3_QM_CQ_TSIZE_STS & 0x7F) >> 2);1362mask |= 1 << ((mmTPC3_QM_CQ_CTL_STS & 0x7F) >> 2);1363mask |= 1 << ((mmTPC3_QM_CQ_STS0 & 0x7F) >> 2);1364mask |= 1 << ((mmTPC3_QM_CQ_STS1 & 0x7F) >> 2);1365mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1366mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1367mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1368mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);13691370WREG32(pb_addr + word_offset, ~mask);13711372pb_addr = (mmTPC3_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1373word_offset = ((mmTPC3_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1374mask = 1 << ((mmTPC3_QM_CQ_IFIFO_CNT & 0x7F) >> 2);1375mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1376mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1377mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1378mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1379mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1380mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1381mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1382mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1383mask |= 1 << ((mmTPC3_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1384mask |= 1 << ((mmTPC3_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1385mask |= 1 << ((mmTPC3_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1386mask |= 1 << ((mmTPC3_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1387mask |= 1 << ((mmTPC3_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1388mask |= 1 << ((mmTPC3_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);13891390WREG32(pb_addr + word_offset, ~mask);13911392pb_addr = (mmTPC3_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1393word_offset = ((mmTPC3_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1394mask = 1 << ((mmTPC3_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1395mask |= 1 << ((mmTPC3_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1396mask |= 1 << ((mmTPC3_CMDQ_GLBL_PROT & 0x7F) >> 2);1397mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1398mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1399mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1400mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1401mask |= 1 << ((mmTPC3_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1402mask |= 1 << ((mmTPC3_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1403mask |= 1 << ((mmTPC3_CMDQ_GLBL_STS0 & 0x7F) >> 2);1404mask |= 1 << ((mmTPC3_CMDQ_GLBL_STS1 & 0x7F) >> 2);14051406WREG32(pb_addr + word_offset, ~mask);14071408pb_addr = (mmTPC3_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1409word_offset = ((mmTPC3_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1410mask = 1 << ((mmTPC3_CMDQ_CQ_CFG0 & 0x7F) >> 2);1411mask |= 1 << ((mmTPC3_CMDQ_CQ_CFG1 & 0x7F) >> 2);1412mask |= 1 << ((mmTPC3_CMDQ_CQ_ARUSER & 0x7F) >> 2);1413mask |= 1 << ((mmTPC3_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);1414mask |= 1 << ((mmTPC3_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);1415mask |= 1 << ((mmTPC3_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);1416mask |= 1 << ((mmTPC3_CMDQ_CQ_CTL_STS & 0x7F) >> 2);1417mask |= 1 << ((mmTPC3_CMDQ_CQ_STS0 & 0x7F) >> 2);1418mask |= 1 << ((mmTPC3_CMDQ_CQ_STS1 & 0x7F) >> 2);1419mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1420mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1421mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1422mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);14231424WREG32(pb_addr + word_offset, ~mask);14251426pb_addr = (mmTPC3_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1427word_offset = ((mmTPC3_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1428mask = 1 << ((mmTPC3_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);1429mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1430mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1431mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1432mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1433mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1434mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1435mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1436mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1437mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1438mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1439mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1440mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1441mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1442mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);1443mask |= 1 << ((mmTPC3_CMDQ_CP_STS & 0x7F) >> 2);1444mask |= 1 << ((mmTPC3_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);14451446WREG32(pb_addr + word_offset, ~mask);14471448pb_addr = (mmTPC3_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;1449word_offset = ((mmTPC3_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)1450<< 2;1451mask = 1 << ((mmTPC3_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);1452mask |= 1 << ((mmTPC3_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);1453mask |= 1 << ((mmTPC3_CMDQ_CP_DBG_0 & 0x7F) >> 2);1454mask |= 1 << ((mmTPC3_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);1455mask |= 1 << ((mmTPC3_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);14561457WREG32(pb_addr + word_offset, ~mask);14581459goya_pb_set_block(hdev, mmTPC4_RTR_BASE);1460goya_pb_set_block(hdev, mmTPC4_RD_REGULATOR_BASE);1461goya_pb_set_block(hdev, mmTPC4_WR_REGULATOR_BASE);14621463pb_addr = (mmTPC4_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;1464word_offset = ((mmTPC4_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;14651466mask = 1 << ((mmTPC4_CFG_SEMAPHORE & 0x7F) >> 2);1467mask |= 1 << ((mmTPC4_CFG_VFLAGS & 0x7F) >> 2);1468mask |= 1 << ((mmTPC4_CFG_SFLAGS & 0x7F) >> 2);1469mask |= 1 << ((mmTPC4_CFG_STATUS & 0x7F) >> 2);14701471WREG32(pb_addr + word_offset, ~mask);14721473pb_addr = (mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;1474word_offset = ((mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH &1475PROT_BITS_OFFS) >> 7) << 2;1476mask = 1 << ((mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);1477mask |= 1 << ((mmTPC4_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);1478mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);1479mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);1480mask |= 1 << ((mmTPC4_CFG_TPC_STALL & 0x7F) >> 2);1481mask |= 1 << ((mmTPC4_CFG_MSS_CONFIG & 0x7F) >> 2);1482mask |= 1 << ((mmTPC4_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);1483mask |= 1 << ((mmTPC4_CFG_TPC_INTR_MASK & 0x7F) >> 2);14841485WREG32(pb_addr + word_offset, ~mask);14861487pb_addr = (mmTPC4_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;1488word_offset = ((mmTPC4_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;1489mask = 1 << ((mmTPC4_CFG_ARUSER & 0x7F) >> 2);1490mask |= 1 << ((mmTPC4_CFG_AWUSER & 0x7F) >> 2);14911492WREG32(pb_addr + word_offset, ~mask);14931494pb_addr = (mmTPC4_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;1495word_offset = ((mmTPC4_CFG_FUNC_MBIST_CNTRL &1496PROT_BITS_OFFS) >> 7) << 2;1497mask = 1 << ((mmTPC4_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);1498mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);1499mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);1500mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);1501mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);1502mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);1503mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);1504mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);1505mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);1506mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);1507mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);1508mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);15091510WREG32(pb_addr + word_offset, ~mask);15111512pb_addr = (mmTPC4_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1513word_offset = ((mmTPC4_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1514mask = 1 << ((mmTPC4_QM_GLBL_CFG0 & 0x7F) >> 2);1515mask |= 1 << ((mmTPC4_QM_GLBL_CFG1 & 0x7F) >> 2);1516mask |= 1 << ((mmTPC4_QM_GLBL_PROT & 0x7F) >> 2);1517mask |= 1 << ((mmTPC4_QM_GLBL_ERR_CFG & 0x7F) >> 2);1518mask |= 1 << ((mmTPC4_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1519mask |= 1 << ((mmTPC4_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1520mask |= 1 << ((mmTPC4_QM_GLBL_ERR_WDATA & 0x7F) >> 2);1521mask |= 1 << ((mmTPC4_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);1522mask |= 1 << ((mmTPC4_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1523mask |= 1 << ((mmTPC4_QM_GLBL_STS0 & 0x7F) >> 2);1524mask |= 1 << ((mmTPC4_QM_GLBL_STS1 & 0x7F) >> 2);1525mask |= 1 << ((mmTPC4_QM_PQ_BASE_LO & 0x7F) >> 2);1526mask |= 1 << ((mmTPC4_QM_PQ_BASE_HI & 0x7F) >> 2);1527mask |= 1 << ((mmTPC4_QM_PQ_SIZE & 0x7F) >> 2);1528mask |= 1 << ((mmTPC4_QM_PQ_PI & 0x7F) >> 2);1529mask |= 1 << ((mmTPC4_QM_PQ_CI & 0x7F) >> 2);1530mask |= 1 << ((mmTPC4_QM_PQ_CFG0 & 0x7F) >> 2);1531mask |= 1 << ((mmTPC4_QM_PQ_CFG1 & 0x7F) >> 2);1532mask |= 1 << ((mmTPC4_QM_PQ_ARUSER & 0x7F) >> 2);15331534WREG32(pb_addr + word_offset, ~mask);15351536pb_addr = (mmTPC4_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;1537word_offset = ((mmTPC4_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;1538mask = 1 << ((mmTPC4_QM_PQ_PUSH0 & 0x7F) >> 2);1539mask |= 1 << ((mmTPC4_QM_PQ_PUSH1 & 0x7F) >> 2);1540mask |= 1 << ((mmTPC4_QM_PQ_PUSH2 & 0x7F) >> 2);1541mask |= 1 << ((mmTPC4_QM_PQ_PUSH3 & 0x7F) >> 2);1542mask |= 1 << ((mmTPC4_QM_PQ_STS0 & 0x7F) >> 2);1543mask |= 1 << ((mmTPC4_QM_PQ_STS1 & 0x7F) >> 2);1544mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);1545mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1546mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1547mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);1548mask |= 1 << ((mmTPC4_QM_CQ_CFG0 & 0x7F) >> 2);1549mask |= 1 << ((mmTPC4_QM_CQ_CFG1 & 0x7F) >> 2);1550mask |= 1 << ((mmTPC4_QM_CQ_ARUSER & 0x7F) >> 2);1551mask |= 1 << ((mmTPC4_QM_CQ_PTR_LO & 0x7F) >> 2);1552mask |= 1 << ((mmTPC4_QM_CQ_PTR_HI & 0x7F) >> 2);1553mask |= 1 << ((mmTPC4_QM_CQ_TSIZE & 0x7F) >> 2);1554mask |= 1 << ((mmTPC4_QM_CQ_CTL & 0x7F) >> 2);1555mask |= 1 << ((mmTPC4_QM_CQ_PTR_LO_STS & 0x7F) >> 2);1556mask |= 1 << ((mmTPC4_QM_CQ_PTR_HI_STS & 0x7F) >> 2);1557mask |= 1 << ((mmTPC4_QM_CQ_TSIZE_STS & 0x7F) >> 2);1558mask |= 1 << ((mmTPC4_QM_CQ_CTL_STS & 0x7F) >> 2);1559mask |= 1 << ((mmTPC4_QM_CQ_STS0 & 0x7F) >> 2);1560mask |= 1 << ((mmTPC4_QM_CQ_STS1 & 0x7F) >> 2);1561mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1562mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1563mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1564mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);15651566WREG32(pb_addr + word_offset, ~mask);15671568pb_addr = (mmTPC4_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1569word_offset = ((mmTPC4_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1570mask = 1 << ((mmTPC4_QM_CQ_IFIFO_CNT & 0x7F) >> 2);1571mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1572mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1573mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1574mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1575mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1576mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1577mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1578mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1579mask |= 1 << ((mmTPC4_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1580mask |= 1 << ((mmTPC4_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1581mask |= 1 << ((mmTPC4_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1582mask |= 1 << ((mmTPC4_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1583mask |= 1 << ((mmTPC4_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1584mask |= 1 << ((mmTPC4_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);15851586WREG32(pb_addr + word_offset, ~mask);15871588pb_addr = (mmTPC4_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1589word_offset = ((mmTPC4_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1590mask = 1 << ((mmTPC4_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1591mask |= 1 << ((mmTPC4_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1592mask |= 1 << ((mmTPC4_CMDQ_GLBL_PROT & 0x7F) >> 2);1593mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1594mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1595mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1596mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1597mask |= 1 << ((mmTPC4_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1598mask |= 1 << ((mmTPC4_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1599mask |= 1 << ((mmTPC4_CMDQ_GLBL_STS0 & 0x7F) >> 2);1600mask |= 1 << ((mmTPC4_CMDQ_GLBL_STS1 & 0x7F) >> 2);16011602WREG32(pb_addr + word_offset, ~mask);16031604pb_addr = (mmTPC4_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1605word_offset = ((mmTPC4_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1606mask = 1 << ((mmTPC4_CMDQ_CQ_CFG0 & 0x7F) >> 2);1607mask |= 1 << ((mmTPC4_CMDQ_CQ_CFG1 & 0x7F) >> 2);1608mask |= 1 << ((mmTPC4_CMDQ_CQ_ARUSER & 0x7F) >> 2);1609mask |= 1 << ((mmTPC4_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);1610mask |= 1 << ((mmTPC4_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);1611mask |= 1 << ((mmTPC4_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);1612mask |= 1 << ((mmTPC4_CMDQ_CQ_CTL_STS & 0x7F) >> 2);1613mask |= 1 << ((mmTPC4_CMDQ_CQ_STS0 & 0x7F) >> 2);1614mask |= 1 << ((mmTPC4_CMDQ_CQ_STS1 & 0x7F) >> 2);1615mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1616mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1617mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1618mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);16191620WREG32(pb_addr + word_offset, ~mask);16211622pb_addr = (mmTPC4_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1623word_offset = ((mmTPC4_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1624mask = 1 << ((mmTPC4_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);1625mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1626mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1627mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1628mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1629mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1630mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1631mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1632mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1633mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1634mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1635mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1636mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1637mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1638mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);1639mask |= 1 << ((mmTPC4_CMDQ_CP_STS & 0x7F) >> 2);1640mask |= 1 << ((mmTPC4_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);16411642WREG32(pb_addr + word_offset, ~mask);16431644pb_addr = (mmTPC4_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;1645word_offset = ((mmTPC4_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)1646<< 2;1647mask = 1 << ((mmTPC4_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);1648mask |= 1 << ((mmTPC4_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);1649mask |= 1 << ((mmTPC4_CMDQ_CP_DBG_0 & 0x7F) >> 2);1650mask |= 1 << ((mmTPC4_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);1651mask |= 1 << ((mmTPC4_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);16521653WREG32(pb_addr + word_offset, ~mask);16541655goya_pb_set_block(hdev, mmTPC5_RTR_BASE);1656goya_pb_set_block(hdev, mmTPC5_RD_REGULATOR_BASE);1657goya_pb_set_block(hdev, mmTPC5_WR_REGULATOR_BASE);16581659pb_addr = (mmTPC5_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;1660word_offset = ((mmTPC5_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;16611662mask = 1 << ((mmTPC5_CFG_SEMAPHORE & 0x7F) >> 2);1663mask |= 1 << ((mmTPC5_CFG_VFLAGS & 0x7F) >> 2);1664mask |= 1 << ((mmTPC5_CFG_SFLAGS & 0x7F) >> 2);1665mask |= 1 << ((mmTPC5_CFG_STATUS & 0x7F) >> 2);16661667WREG32(pb_addr + word_offset, ~mask);16681669pb_addr = (mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;1670word_offset = ((mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH &1671PROT_BITS_OFFS) >> 7) << 2;1672mask = 1 << ((mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);1673mask |= 1 << ((mmTPC5_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);1674mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);1675mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);1676mask |= 1 << ((mmTPC5_CFG_TPC_STALL & 0x7F) >> 2);1677mask |= 1 << ((mmTPC5_CFG_MSS_CONFIG & 0x7F) >> 2);1678mask |= 1 << ((mmTPC5_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);1679mask |= 1 << ((mmTPC5_CFG_TPC_INTR_MASK & 0x7F) >> 2);16801681WREG32(pb_addr + word_offset, ~mask);16821683pb_addr = (mmTPC5_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;1684word_offset = ((mmTPC5_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;1685mask = 1 << ((mmTPC5_CFG_ARUSER & 0x7F) >> 2);1686mask |= 1 << ((mmTPC5_CFG_AWUSER & 0x7F) >> 2);16871688WREG32(pb_addr + word_offset, ~mask);16891690pb_addr = (mmTPC5_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;1691word_offset = ((mmTPC5_CFG_FUNC_MBIST_CNTRL &1692PROT_BITS_OFFS) >> 7) << 2;1693mask = 1 << ((mmTPC5_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);1694mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);1695mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);1696mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);1697mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);1698mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);1699mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);1700mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);1701mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);1702mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);1703mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);1704mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);17051706WREG32(pb_addr + word_offset, ~mask);17071708pb_addr = (mmTPC5_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1709word_offset = ((mmTPC5_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1710mask = 1 << ((mmTPC5_QM_GLBL_CFG0 & 0x7F) >> 2);1711mask |= 1 << ((mmTPC5_QM_GLBL_CFG1 & 0x7F) >> 2);1712mask |= 1 << ((mmTPC5_QM_GLBL_PROT & 0x7F) >> 2);1713mask |= 1 << ((mmTPC5_QM_GLBL_ERR_CFG & 0x7F) >> 2);1714mask |= 1 << ((mmTPC5_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1715mask |= 1 << ((mmTPC5_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1716mask |= 1 << ((mmTPC5_QM_GLBL_ERR_WDATA & 0x7F) >> 2);1717mask |= 1 << ((mmTPC5_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);1718mask |= 1 << ((mmTPC5_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1719mask |= 1 << ((mmTPC5_QM_GLBL_STS0 & 0x7F) >> 2);1720mask |= 1 << ((mmTPC5_QM_GLBL_STS1 & 0x7F) >> 2);1721mask |= 1 << ((mmTPC5_QM_PQ_BASE_LO & 0x7F) >> 2);1722mask |= 1 << ((mmTPC5_QM_PQ_BASE_HI & 0x7F) >> 2);1723mask |= 1 << ((mmTPC5_QM_PQ_SIZE & 0x7F) >> 2);1724mask |= 1 << ((mmTPC5_QM_PQ_PI & 0x7F) >> 2);1725mask |= 1 << ((mmTPC5_QM_PQ_CI & 0x7F) >> 2);1726mask |= 1 << ((mmTPC5_QM_PQ_CFG0 & 0x7F) >> 2);1727mask |= 1 << ((mmTPC5_QM_PQ_CFG1 & 0x7F) >> 2);1728mask |= 1 << ((mmTPC5_QM_PQ_ARUSER & 0x7F) >> 2);17291730WREG32(pb_addr + word_offset, ~mask);17311732pb_addr = (mmTPC5_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;1733word_offset = ((mmTPC5_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;1734mask = 1 << ((mmTPC5_QM_PQ_PUSH0 & 0x7F) >> 2);1735mask |= 1 << ((mmTPC5_QM_PQ_PUSH1 & 0x7F) >> 2);1736mask |= 1 << ((mmTPC5_QM_PQ_PUSH2 & 0x7F) >> 2);1737mask |= 1 << ((mmTPC5_QM_PQ_PUSH3 & 0x7F) >> 2);1738mask |= 1 << ((mmTPC5_QM_PQ_STS0 & 0x7F) >> 2);1739mask |= 1 << ((mmTPC5_QM_PQ_STS1 & 0x7F) >> 2);1740mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);1741mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1742mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1743mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);1744mask |= 1 << ((mmTPC5_QM_CQ_CFG0 & 0x7F) >> 2);1745mask |= 1 << ((mmTPC5_QM_CQ_CFG1 & 0x7F) >> 2);1746mask |= 1 << ((mmTPC5_QM_CQ_ARUSER & 0x7F) >> 2);1747mask |= 1 << ((mmTPC5_QM_CQ_PTR_LO & 0x7F) >> 2);1748mask |= 1 << ((mmTPC5_QM_CQ_PTR_HI & 0x7F) >> 2);1749mask |= 1 << ((mmTPC5_QM_CQ_TSIZE & 0x7F) >> 2);1750mask |= 1 << ((mmTPC5_QM_CQ_CTL & 0x7F) >> 2);1751mask |= 1 << ((mmTPC5_QM_CQ_PTR_LO_STS & 0x7F) >> 2);1752mask |= 1 << ((mmTPC5_QM_CQ_PTR_HI_STS & 0x7F) >> 2);1753mask |= 1 << ((mmTPC5_QM_CQ_TSIZE_STS & 0x7F) >> 2);1754mask |= 1 << ((mmTPC5_QM_CQ_CTL_STS & 0x7F) >> 2);1755mask |= 1 << ((mmTPC5_QM_CQ_STS0 & 0x7F) >> 2);1756mask |= 1 << ((mmTPC5_QM_CQ_STS1 & 0x7F) >> 2);1757mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1758mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1759mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1760mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);17611762WREG32(pb_addr + word_offset, ~mask);17631764pb_addr = (mmTPC5_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1765word_offset = ((mmTPC5_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1766mask = 1 << ((mmTPC5_QM_CQ_IFIFO_CNT & 0x7F) >> 2);1767mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1768mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1769mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1770mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1771mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1772mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1773mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1774mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1775mask |= 1 << ((mmTPC5_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1776mask |= 1 << ((mmTPC5_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1777mask |= 1 << ((mmTPC5_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1778mask |= 1 << ((mmTPC5_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1779mask |= 1 << ((mmTPC5_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1780mask |= 1 << ((mmTPC5_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);17811782WREG32(pb_addr + word_offset, ~mask);17831784pb_addr = (mmTPC5_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1785word_offset = ((mmTPC5_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1786mask = 1 << ((mmTPC5_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1787mask |= 1 << ((mmTPC5_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1788mask |= 1 << ((mmTPC5_CMDQ_GLBL_PROT & 0x7F) >> 2);1789mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1790mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1791mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1792mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1793mask |= 1 << ((mmTPC5_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1794mask |= 1 << ((mmTPC5_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1795mask |= 1 << ((mmTPC5_CMDQ_GLBL_STS0 & 0x7F) >> 2);1796mask |= 1 << ((mmTPC5_CMDQ_GLBL_STS1 & 0x7F) >> 2);17971798WREG32(pb_addr + word_offset, ~mask);17991800pb_addr = (mmTPC5_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1801word_offset = ((mmTPC5_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1802mask = 1 << ((mmTPC5_CMDQ_CQ_CFG0 & 0x7F) >> 2);1803mask |= 1 << ((mmTPC5_CMDQ_CQ_CFG1 & 0x7F) >> 2);1804mask |= 1 << ((mmTPC5_CMDQ_CQ_ARUSER & 0x7F) >> 2);1805mask |= 1 << ((mmTPC5_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);1806mask |= 1 << ((mmTPC5_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);1807mask |= 1 << ((mmTPC5_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);1808mask |= 1 << ((mmTPC5_CMDQ_CQ_CTL_STS & 0x7F) >> 2);1809mask |= 1 << ((mmTPC5_CMDQ_CQ_STS0 & 0x7F) >> 2);1810mask |= 1 << ((mmTPC5_CMDQ_CQ_STS1 & 0x7F) >> 2);1811mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1812mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1813mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1814mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);18151816WREG32(pb_addr + word_offset, ~mask);18171818pb_addr = (mmTPC5_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1819word_offset = ((mmTPC5_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1820mask = 1 << ((mmTPC5_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);1821mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1822mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1823mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1824mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1825mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1826mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1827mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1828mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1829mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1830mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1831mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1832mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1833mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1834mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);1835mask |= 1 << ((mmTPC5_CMDQ_CP_STS & 0x7F) >> 2);1836mask |= 1 << ((mmTPC5_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);18371838WREG32(pb_addr + word_offset, ~mask);18391840pb_addr = (mmTPC5_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;1841word_offset = ((mmTPC5_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)1842<< 2;1843mask = 1 << ((mmTPC5_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);1844mask |= 1 << ((mmTPC5_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);1845mask |= 1 << ((mmTPC5_CMDQ_CP_DBG_0 & 0x7F) >> 2);1846mask |= 1 << ((mmTPC5_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);1847mask |= 1 << ((mmTPC5_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);18481849WREG32(pb_addr + word_offset, ~mask);18501851goya_pb_set_block(hdev, mmTPC6_RTR_BASE);1852goya_pb_set_block(hdev, mmTPC6_RD_REGULATOR_BASE);1853goya_pb_set_block(hdev, mmTPC6_WR_REGULATOR_BASE);18541855pb_addr = (mmTPC6_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;1856word_offset = ((mmTPC6_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;18571858mask = 1 << ((mmTPC6_CFG_SEMAPHORE & 0x7F) >> 2);1859mask |= 1 << ((mmTPC6_CFG_VFLAGS & 0x7F) >> 2);1860mask |= 1 << ((mmTPC6_CFG_SFLAGS & 0x7F) >> 2);1861mask |= 1 << ((mmTPC6_CFG_STATUS & 0x7F) >> 2);18621863WREG32(pb_addr + word_offset, ~mask);18641865pb_addr = (mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;1866word_offset = ((mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH &1867PROT_BITS_OFFS) >> 7) << 2;1868mask = 1 << ((mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);1869mask |= 1 << ((mmTPC6_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);1870mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);1871mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);1872mask |= 1 << ((mmTPC6_CFG_TPC_STALL & 0x7F) >> 2);1873mask |= 1 << ((mmTPC6_CFG_MSS_CONFIG & 0x7F) >> 2);1874mask |= 1 << ((mmTPC6_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);1875mask |= 1 << ((mmTPC6_CFG_TPC_INTR_MASK & 0x7F) >> 2);18761877WREG32(pb_addr + word_offset, ~mask);18781879pb_addr = (mmTPC6_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;1880word_offset = ((mmTPC6_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;1881mask = 1 << ((mmTPC6_CFG_ARUSER & 0x7F) >> 2);1882mask |= 1 << ((mmTPC6_CFG_AWUSER & 0x7F) >> 2);18831884WREG32(pb_addr + word_offset, ~mask);18851886pb_addr = (mmTPC6_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;1887word_offset = ((mmTPC6_CFG_FUNC_MBIST_CNTRL &1888PROT_BITS_OFFS) >> 7) << 2;1889mask = 1 << ((mmTPC6_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);1890mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);1891mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);1892mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);1893mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);1894mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);1895mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);1896mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);1897mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);1898mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);1899mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);1900mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);19011902WREG32(pb_addr + word_offset, ~mask);19031904pb_addr = (mmTPC6_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1905word_offset = ((mmTPC6_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1906mask = 1 << ((mmTPC6_QM_GLBL_CFG0 & 0x7F) >> 2);1907mask |= 1 << ((mmTPC6_QM_GLBL_CFG1 & 0x7F) >> 2);1908mask |= 1 << ((mmTPC6_QM_GLBL_PROT & 0x7F) >> 2);1909mask |= 1 << ((mmTPC6_QM_GLBL_ERR_CFG & 0x7F) >> 2);1910mask |= 1 << ((mmTPC6_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1911mask |= 1 << ((mmTPC6_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1912mask |= 1 << ((mmTPC6_QM_GLBL_ERR_WDATA & 0x7F) >> 2);1913mask |= 1 << ((mmTPC6_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);1914mask |= 1 << ((mmTPC6_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1915mask |= 1 << ((mmTPC6_QM_GLBL_STS0 & 0x7F) >> 2);1916mask |= 1 << ((mmTPC6_QM_GLBL_STS1 & 0x7F) >> 2);1917mask |= 1 << ((mmTPC6_QM_PQ_BASE_LO & 0x7F) >> 2);1918mask |= 1 << ((mmTPC6_QM_PQ_BASE_HI & 0x7F) >> 2);1919mask |= 1 << ((mmTPC6_QM_PQ_SIZE & 0x7F) >> 2);1920mask |= 1 << ((mmTPC6_QM_PQ_PI & 0x7F) >> 2);1921mask |= 1 << ((mmTPC6_QM_PQ_CI & 0x7F) >> 2);1922mask |= 1 << ((mmTPC6_QM_PQ_CFG0 & 0x7F) >> 2);1923mask |= 1 << ((mmTPC6_QM_PQ_CFG1 & 0x7F) >> 2);1924mask |= 1 << ((mmTPC6_QM_PQ_ARUSER & 0x7F) >> 2);19251926WREG32(pb_addr + word_offset, ~mask);19271928pb_addr = (mmTPC6_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;1929word_offset = ((mmTPC6_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;1930mask = 1 << ((mmTPC6_QM_PQ_PUSH0 & 0x7F) >> 2);1931mask |= 1 << ((mmTPC6_QM_PQ_PUSH1 & 0x7F) >> 2);1932mask |= 1 << ((mmTPC6_QM_PQ_PUSH2 & 0x7F) >> 2);1933mask |= 1 << ((mmTPC6_QM_PQ_PUSH3 & 0x7F) >> 2);1934mask |= 1 << ((mmTPC6_QM_PQ_STS0 & 0x7F) >> 2);1935mask |= 1 << ((mmTPC6_QM_PQ_STS1 & 0x7F) >> 2);1936mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);1937mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1938mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1939mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);1940mask |= 1 << ((mmTPC6_QM_CQ_CFG0 & 0x7F) >> 2);1941mask |= 1 << ((mmTPC6_QM_CQ_CFG1 & 0x7F) >> 2);1942mask |= 1 << ((mmTPC6_QM_CQ_ARUSER & 0x7F) >> 2);1943mask |= 1 << ((mmTPC6_QM_CQ_PTR_LO & 0x7F) >> 2);1944mask |= 1 << ((mmTPC6_QM_CQ_PTR_HI & 0x7F) >> 2);1945mask |= 1 << ((mmTPC6_QM_CQ_TSIZE & 0x7F) >> 2);1946mask |= 1 << ((mmTPC6_QM_CQ_CTL & 0x7F) >> 2);1947mask |= 1 << ((mmTPC6_QM_CQ_PTR_LO_STS & 0x7F) >> 2);1948mask |= 1 << ((mmTPC6_QM_CQ_PTR_HI_STS & 0x7F) >> 2);1949mask |= 1 << ((mmTPC6_QM_CQ_TSIZE_STS & 0x7F) >> 2);1950mask |= 1 << ((mmTPC6_QM_CQ_CTL_STS & 0x7F) >> 2);1951mask |= 1 << ((mmTPC6_QM_CQ_STS0 & 0x7F) >> 2);1952mask |= 1 << ((mmTPC6_QM_CQ_STS1 & 0x7F) >> 2);1953mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);1954mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);1955mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);1956mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);19571958WREG32(pb_addr + word_offset, ~mask);19591960pb_addr = (mmTPC6_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;1961word_offset = ((mmTPC6_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;1962mask = 1 << ((mmTPC6_QM_CQ_IFIFO_CNT & 0x7F) >> 2);1963mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);1964mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);1965mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);1966mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);1967mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);1968mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);1969mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);1970mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);1971mask |= 1 << ((mmTPC6_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);1972mask |= 1 << ((mmTPC6_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);1973mask |= 1 << ((mmTPC6_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);1974mask |= 1 << ((mmTPC6_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);1975mask |= 1 << ((mmTPC6_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);1976mask |= 1 << ((mmTPC6_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);19771978WREG32(pb_addr + word_offset, ~mask);19791980pb_addr = (mmTPC6_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1981word_offset = ((mmTPC6_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1982mask = 1 << ((mmTPC6_CMDQ_GLBL_CFG0 & 0x7F) >> 2);1983mask |= 1 << ((mmTPC6_CMDQ_GLBL_CFG1 & 0x7F) >> 2);1984mask |= 1 << ((mmTPC6_CMDQ_GLBL_PROT & 0x7F) >> 2);1985mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);1986mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);1987mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);1988mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);1989mask |= 1 << ((mmTPC6_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);1990mask |= 1 << ((mmTPC6_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);1991mask |= 1 << ((mmTPC6_CMDQ_GLBL_STS0 & 0x7F) >> 2);1992mask |= 1 << ((mmTPC6_CMDQ_GLBL_STS1 & 0x7F) >> 2);19931994WREG32(pb_addr + word_offset, ~mask);19951996pb_addr = (mmTPC6_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;1997word_offset = ((mmTPC6_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;1998mask = 1 << ((mmTPC6_CMDQ_CQ_CFG0 & 0x7F) >> 2);1999mask |= 1 << ((mmTPC6_CMDQ_CQ_CFG1 & 0x7F) >> 2);2000mask |= 1 << ((mmTPC6_CMDQ_CQ_ARUSER & 0x7F) >> 2);2001mask |= 1 << ((mmTPC6_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);2002mask |= 1 << ((mmTPC6_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);2003mask |= 1 << ((mmTPC6_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);2004mask |= 1 << ((mmTPC6_CMDQ_CQ_CTL_STS & 0x7F) >> 2);2005mask |= 1 << ((mmTPC6_CMDQ_CQ_STS0 & 0x7F) >> 2);2006mask |= 1 << ((mmTPC6_CMDQ_CQ_STS1 & 0x7F) >> 2);2007mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);2008mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);2009mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);2010mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);20112012WREG32(pb_addr + word_offset, ~mask);20132014pb_addr = (mmTPC6_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;2015word_offset = ((mmTPC6_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;2016mask = 1 << ((mmTPC6_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);2017mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);2018mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);2019mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);2020mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);2021mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);2022mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);2023mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);2024mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);2025mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);2026mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);2027mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);2028mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);2029mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);2030mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);2031mask |= 1 << ((mmTPC6_CMDQ_CP_STS & 0x7F) >> 2);2032mask |= 1 << ((mmTPC6_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);20332034WREG32(pb_addr + word_offset, ~mask);20352036pb_addr = (mmTPC6_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;2037word_offset = ((mmTPC6_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)2038<< 2;2039mask = 1 << ((mmTPC6_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);2040mask |= 1 << ((mmTPC6_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);2041mask |= 1 << ((mmTPC6_CMDQ_CP_DBG_0 & 0x7F) >> 2);2042mask |= 1 << ((mmTPC6_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);2043mask |= 1 << ((mmTPC6_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);20442045WREG32(pb_addr + word_offset, ~mask);20462047goya_pb_set_block(hdev, mmTPC7_NRTR_BASE);2048goya_pb_set_block(hdev, mmTPC7_RD_REGULATOR_BASE);2049goya_pb_set_block(hdev, mmTPC7_WR_REGULATOR_BASE);20502051pb_addr = (mmTPC7_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;2052word_offset = ((mmTPC7_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;20532054mask = 1 << ((mmTPC7_CFG_SEMAPHORE & 0x7F) >> 2);2055mask |= 1 << ((mmTPC7_CFG_VFLAGS & 0x7F) >> 2);2056mask |= 1 << ((mmTPC7_CFG_SFLAGS & 0x7F) >> 2);2057mask |= 1 << ((mmTPC7_CFG_STATUS & 0x7F) >> 2);20582059WREG32(pb_addr + word_offset, ~mask);20602061pb_addr = (mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;2062word_offset = ((mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH &2063PROT_BITS_OFFS) >> 7) << 2;2064mask = 1 << ((mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);2065mask |= 1 << ((mmTPC7_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);2066mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);2067mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);2068mask |= 1 << ((mmTPC7_CFG_TPC_STALL & 0x7F) >> 2);2069mask |= 1 << ((mmTPC7_CFG_MSS_CONFIG & 0x7F) >> 2);2070mask |= 1 << ((mmTPC7_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);2071mask |= 1 << ((mmTPC7_CFG_TPC_INTR_MASK & 0x7F) >> 2);20722073WREG32(pb_addr + word_offset, ~mask);20742075pb_addr = (mmTPC7_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;2076word_offset = ((mmTPC7_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;2077mask = 1 << ((mmTPC7_CFG_ARUSER & 0x7F) >> 2);2078mask |= 1 << ((mmTPC7_CFG_AWUSER & 0x7F) >> 2);20792080WREG32(pb_addr + word_offset, ~mask);20812082pb_addr = (mmTPC7_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;2083word_offset = ((mmTPC7_CFG_FUNC_MBIST_CNTRL &2084PROT_BITS_OFFS) >> 7) << 2;2085mask = 1 << ((mmTPC7_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);2086mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);2087mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);2088mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);2089mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);2090mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);2091mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);2092mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);2093mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);2094mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);2095mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);2096mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);20972098WREG32(pb_addr + word_offset, ~mask);20992100pb_addr = (mmTPC7_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;2101word_offset = ((mmTPC7_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;2102mask = 1 << ((mmTPC7_QM_GLBL_CFG0 & 0x7F) >> 2);2103mask |= 1 << ((mmTPC7_QM_GLBL_CFG1 & 0x7F) >> 2);2104mask |= 1 << ((mmTPC7_QM_GLBL_PROT & 0x7F) >> 2);2105mask |= 1 << ((mmTPC7_QM_GLBL_ERR_CFG & 0x7F) >> 2);2106mask |= 1 << ((mmTPC7_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);2107mask |= 1 << ((mmTPC7_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);2108mask |= 1 << ((mmTPC7_QM_GLBL_ERR_WDATA & 0x7F) >> 2);2109mask |= 1 << ((mmTPC7_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);2110mask |= 1 << ((mmTPC7_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);2111mask |= 1 << ((mmTPC7_QM_GLBL_STS0 & 0x7F) >> 2);2112mask |= 1 << ((mmTPC7_QM_GLBL_STS1 & 0x7F) >> 2);2113mask |= 1 << ((mmTPC7_QM_PQ_BASE_LO & 0x7F) >> 2);2114mask |= 1 << ((mmTPC7_QM_PQ_BASE_HI & 0x7F) >> 2);2115mask |= 1 << ((mmTPC7_QM_PQ_SIZE & 0x7F) >> 2);2116mask |= 1 << ((mmTPC7_QM_PQ_PI & 0x7F) >> 2);2117mask |= 1 << ((mmTPC7_QM_PQ_CI & 0x7F) >> 2);2118mask |= 1 << ((mmTPC7_QM_PQ_CFG0 & 0x7F) >> 2);2119mask |= 1 << ((mmTPC7_QM_PQ_CFG1 & 0x7F) >> 2);2120mask |= 1 << ((mmTPC7_QM_PQ_ARUSER & 0x7F) >> 2);21212122WREG32(pb_addr + word_offset, ~mask);21232124pb_addr = (mmTPC7_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;2125word_offset = ((mmTPC7_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;2126mask = 1 << ((mmTPC7_QM_PQ_PUSH0 & 0x7F) >> 2);2127mask |= 1 << ((mmTPC7_QM_PQ_PUSH1 & 0x7F) >> 2);2128mask |= 1 << ((mmTPC7_QM_PQ_PUSH2 & 0x7F) >> 2);2129mask |= 1 << ((mmTPC7_QM_PQ_PUSH3 & 0x7F) >> 2);2130mask |= 1 << ((mmTPC7_QM_PQ_STS0 & 0x7F) >> 2);2131mask |= 1 << ((mmTPC7_QM_PQ_STS1 & 0x7F) >> 2);2132mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);2133mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);2134mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);2135mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);2136mask |= 1 << ((mmTPC7_QM_CQ_CFG0 & 0x7F) >> 2);2137mask |= 1 << ((mmTPC7_QM_CQ_CFG1 & 0x7F) >> 2);2138mask |= 1 << ((mmTPC7_QM_CQ_ARUSER & 0x7F) >> 2);2139mask |= 1 << ((mmTPC7_QM_CQ_PTR_LO & 0x7F) >> 2);2140mask |= 1 << ((mmTPC7_QM_CQ_PTR_HI & 0x7F) >> 2);2141mask |= 1 << ((mmTPC7_QM_CQ_TSIZE & 0x7F) >> 2);2142mask |= 1 << ((mmTPC7_QM_CQ_CTL & 0x7F) >> 2);2143mask |= 1 << ((mmTPC7_QM_CQ_PTR_LO_STS & 0x7F) >> 2);2144mask |= 1 << ((mmTPC7_QM_CQ_PTR_HI_STS & 0x7F) >> 2);2145mask |= 1 << ((mmTPC7_QM_CQ_TSIZE_STS & 0x7F) >> 2);2146mask |= 1 << ((mmTPC7_QM_CQ_CTL_STS & 0x7F) >> 2);2147mask |= 1 << ((mmTPC7_QM_CQ_STS0 & 0x7F) >> 2);2148mask |= 1 << ((mmTPC7_QM_CQ_STS1 & 0x7F) >> 2);2149mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);2150mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);2151mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);2152mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);21532154WREG32(pb_addr + word_offset, ~mask);21552156pb_addr = (mmTPC7_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;2157word_offset = ((mmTPC7_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;2158mask = 1 << ((mmTPC7_QM_CQ_IFIFO_CNT & 0x7F) >> 2);2159mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);2160mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);2161mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);2162mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);2163mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);2164mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);2165mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);2166mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);2167mask |= 1 << ((mmTPC7_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);2168mask |= 1 << ((mmTPC7_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);2169mask |= 1 << ((mmTPC7_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);2170mask |= 1 << ((mmTPC7_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);2171mask |= 1 << ((mmTPC7_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);2172mask |= 1 << ((mmTPC7_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);21732174WREG32(pb_addr + word_offset, ~mask);21752176pb_addr = (mmTPC7_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;2177word_offset = ((mmTPC7_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;2178mask = 1 << ((mmTPC7_CMDQ_GLBL_CFG0 & 0x7F) >> 2);2179mask |= 1 << ((mmTPC7_CMDQ_GLBL_CFG1 & 0x7F) >> 2);2180mask |= 1 << ((mmTPC7_CMDQ_GLBL_PROT & 0x7F) >> 2);2181mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);2182mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);2183mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);2184mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);2185mask |= 1 << ((mmTPC7_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);2186mask |= 1 << ((mmTPC7_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);2187mask |= 1 << ((mmTPC7_CMDQ_GLBL_STS0 & 0x7F) >> 2);2188mask |= 1 << ((mmTPC7_CMDQ_GLBL_STS1 & 0x7F) >> 2);21892190WREG32(pb_addr + word_offset, ~mask);21912192pb_addr = (mmTPC7_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;2193word_offset = ((mmTPC7_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;2194mask = 1 << ((mmTPC7_CMDQ_CQ_CFG0 & 0x7F) >> 2);2195mask |= 1 << ((mmTPC7_CMDQ_CQ_CFG1 & 0x7F) >> 2);2196mask |= 1 << ((mmTPC7_CMDQ_CQ_ARUSER & 0x7F) >> 2);2197mask |= 1 << ((mmTPC7_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);2198mask |= 1 << ((mmTPC7_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);2199mask |= 1 << ((mmTPC7_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);2200mask |= 1 << ((mmTPC7_CMDQ_CQ_CTL_STS & 0x7F) >> 2);2201mask |= 1 << ((mmTPC7_CMDQ_CQ_STS0 & 0x7F) >> 2);2202mask |= 1 << ((mmTPC7_CMDQ_CQ_STS1 & 0x7F) >> 2);2203mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);2204mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);2205mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);2206mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);22072208WREG32(pb_addr + word_offset, ~mask);22092210pb_addr = (mmTPC7_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;2211word_offset = ((mmTPC7_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;2212mask = 1 << ((mmTPC7_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);2213mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);2214mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);2215mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);2216mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);2217mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);2218mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);2219mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);2220mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);2221mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);2222mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);2223mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);2224mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);2225mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);2226mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);2227mask |= 1 << ((mmTPC7_CMDQ_CP_STS & 0x7F) >> 2);2228mask |= 1 << ((mmTPC7_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);22292230WREG32(pb_addr + word_offset, ~mask);22312232pb_addr = (mmTPC7_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;2233word_offset = ((mmTPC7_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)2234<< 2;2235mask = 1 << ((mmTPC7_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);2236mask |= 1 << ((mmTPC7_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);2237mask |= 1 << ((mmTPC7_CMDQ_CP_DBG_0 & 0x7F) >> 2);2238mask |= 1 << ((mmTPC7_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);2239mask |= 1 << ((mmTPC7_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);22402241WREG32(pb_addr + word_offset, ~mask);2242}22432244/*2245* goya_init_protection_bits - Initialize protection bits for specific registers2246*2247* @hdev: pointer to hl_device structure2248*2249* All protection bits are 1 by default, means not protected. Need to set to 02250* each bit that belongs to a protected register.2251*2252*/2253static void goya_init_protection_bits(struct hl_device *hdev)2254{2255/*2256* In each 4K block of registers, the last 128 bytes are protection2257* bits - total of 1024 bits, one for each register. Each bit is related2258* to a specific register, by the order of the registers.2259* So in order to calculate the bit that is related to a given register,2260* we need to calculate its word offset and then the exact bit inside2261* the word (which is 4 bytes).2262*2263* Register address:2264*2265* 31 12 11 7 6 2 1 02266* -----------------------------------------------------------------2267* | Don't | word | bit location | 0 |2268* | care | offset | inside word | |2269* -----------------------------------------------------------------2270*2271* Bits 7-11 represents the word offset inside the 128 bytes.2272* Bits 2-6 represents the bit location inside the word.2273*/2274u32 pb_addr, mask;2275u8 word_offset;22762277goya_pb_set_block(hdev, mmPCI_NRTR_BASE);2278goya_pb_set_block(hdev, mmPCI_RD_REGULATOR_BASE);2279goya_pb_set_block(hdev, mmPCI_WR_REGULATOR_BASE);22802281goya_pb_set_block(hdev, mmSRAM_Y0_X0_BANK_BASE);2282goya_pb_set_block(hdev, mmSRAM_Y0_X0_RTR_BASE);2283goya_pb_set_block(hdev, mmSRAM_Y0_X1_BANK_BASE);2284goya_pb_set_block(hdev, mmSRAM_Y0_X1_RTR_BASE);2285goya_pb_set_block(hdev, mmSRAM_Y0_X2_BANK_BASE);2286goya_pb_set_block(hdev, mmSRAM_Y0_X2_RTR_BASE);2287goya_pb_set_block(hdev, mmSRAM_Y0_X3_BANK_BASE);2288goya_pb_set_block(hdev, mmSRAM_Y0_X3_RTR_BASE);2289goya_pb_set_block(hdev, mmSRAM_Y0_X4_BANK_BASE);2290goya_pb_set_block(hdev, mmSRAM_Y0_X4_RTR_BASE);22912292goya_pb_set_block(hdev, mmSRAM_Y1_X0_BANK_BASE);2293goya_pb_set_block(hdev, mmSRAM_Y1_X0_RTR_BASE);2294goya_pb_set_block(hdev, mmSRAM_Y1_X1_BANK_BASE);2295goya_pb_set_block(hdev, mmSRAM_Y1_X1_RTR_BASE);2296goya_pb_set_block(hdev, mmSRAM_Y1_X2_BANK_BASE);2297goya_pb_set_block(hdev, mmSRAM_Y1_X2_RTR_BASE);2298goya_pb_set_block(hdev, mmSRAM_Y1_X3_BANK_BASE);2299goya_pb_set_block(hdev, mmSRAM_Y1_X3_RTR_BASE);2300goya_pb_set_block(hdev, mmSRAM_Y1_X4_BANK_BASE);2301goya_pb_set_block(hdev, mmSRAM_Y1_X4_RTR_BASE);23022303goya_pb_set_block(hdev, mmSRAM_Y2_X0_BANK_BASE);2304goya_pb_set_block(hdev, mmSRAM_Y2_X0_RTR_BASE);2305goya_pb_set_block(hdev, mmSRAM_Y2_X1_BANK_BASE);2306goya_pb_set_block(hdev, mmSRAM_Y2_X1_RTR_BASE);2307goya_pb_set_block(hdev, mmSRAM_Y2_X2_BANK_BASE);2308goya_pb_set_block(hdev, mmSRAM_Y2_X2_RTR_BASE);2309goya_pb_set_block(hdev, mmSRAM_Y2_X3_BANK_BASE);2310goya_pb_set_block(hdev, mmSRAM_Y2_X3_RTR_BASE);2311goya_pb_set_block(hdev, mmSRAM_Y2_X4_BANK_BASE);2312goya_pb_set_block(hdev, mmSRAM_Y2_X4_RTR_BASE);23132314goya_pb_set_block(hdev, mmSRAM_Y3_X0_BANK_BASE);2315goya_pb_set_block(hdev, mmSRAM_Y3_X0_RTR_BASE);2316goya_pb_set_block(hdev, mmSRAM_Y3_X1_BANK_BASE);2317goya_pb_set_block(hdev, mmSRAM_Y3_X1_RTR_BASE);2318goya_pb_set_block(hdev, mmSRAM_Y3_X2_BANK_BASE);2319goya_pb_set_block(hdev, mmSRAM_Y3_X2_RTR_BASE);2320goya_pb_set_block(hdev, mmSRAM_Y3_X3_BANK_BASE);2321goya_pb_set_block(hdev, mmSRAM_Y3_X3_RTR_BASE);2322goya_pb_set_block(hdev, mmSRAM_Y3_X4_BANK_BASE);2323goya_pb_set_block(hdev, mmSRAM_Y3_X4_RTR_BASE);23242325goya_pb_set_block(hdev, mmSRAM_Y4_X0_BANK_BASE);2326goya_pb_set_block(hdev, mmSRAM_Y4_X0_RTR_BASE);2327goya_pb_set_block(hdev, mmSRAM_Y4_X1_BANK_BASE);2328goya_pb_set_block(hdev, mmSRAM_Y4_X1_RTR_BASE);2329goya_pb_set_block(hdev, mmSRAM_Y4_X2_BANK_BASE);2330goya_pb_set_block(hdev, mmSRAM_Y4_X2_RTR_BASE);2331goya_pb_set_block(hdev, mmSRAM_Y4_X3_BANK_BASE);2332goya_pb_set_block(hdev, mmSRAM_Y4_X3_RTR_BASE);2333goya_pb_set_block(hdev, mmSRAM_Y4_X4_BANK_BASE);2334goya_pb_set_block(hdev, mmSRAM_Y4_X4_RTR_BASE);23352336goya_pb_set_block(hdev, mmSRAM_Y5_X0_BANK_BASE);2337goya_pb_set_block(hdev, mmSRAM_Y5_X0_RTR_BASE);2338goya_pb_set_block(hdev, mmSRAM_Y5_X1_BANK_BASE);2339goya_pb_set_block(hdev, mmSRAM_Y5_X1_RTR_BASE);2340goya_pb_set_block(hdev, mmSRAM_Y5_X2_BANK_BASE);2341goya_pb_set_block(hdev, mmSRAM_Y5_X2_RTR_BASE);2342goya_pb_set_block(hdev, mmSRAM_Y5_X3_BANK_BASE);2343goya_pb_set_block(hdev, mmSRAM_Y5_X3_RTR_BASE);2344goya_pb_set_block(hdev, mmSRAM_Y5_X4_BANK_BASE);2345goya_pb_set_block(hdev, mmSRAM_Y5_X4_RTR_BASE);23462347goya_pb_set_block(hdev, mmPCIE_WRAP_BASE);2348goya_pb_set_block(hdev, mmPCIE_CORE_BASE);2349goya_pb_set_block(hdev, mmPCIE_DB_CFG_BASE);2350goya_pb_set_block(hdev, mmPCIE_DB_CMD_BASE);2351goya_pb_set_block(hdev, mmPCIE_AUX_BASE);2352goya_pb_set_block(hdev, mmPCIE_DB_RSV_BASE);2353goya_pb_set_block(hdev, mmPCIE_PHY_BASE);2354goya_pb_set_block(hdev, mmTPC0_NRTR_BASE);2355goya_pb_set_block(hdev, mmTPC_PLL_BASE);23562357pb_addr = (mmTPC_PLL_CLK_RLX_0 & ~0xFFF) + PROT_BITS_OFFS;2358word_offset = ((mmTPC_PLL_CLK_RLX_0 & PROT_BITS_OFFS) >> 7) << 2;2359mask = 1 << ((mmTPC_PLL_CLK_RLX_0 & 0x7C) >> 2);23602361WREG32(pb_addr + word_offset, mask);23622363goya_init_mme_protection_bits(hdev);23642365goya_init_dma_protection_bits(hdev);23662367goya_init_tpc_protection_bits(hdev);2368}23692370/*2371* goya_init_security - Initialize security model2372*2373* @hdev: pointer to hl_device structure2374*2375* Initialize the security model of the device2376* That includes range registers and protection bit per register2377*2378*/2379void goya_init_security(struct hl_device *hdev)2380{2381struct goya_device *goya = hdev->asic_specific;23822383u32 dram_addr_lo = lower_32_bits(DRAM_PHYS_BASE);2384u32 dram_addr_hi = upper_32_bits(DRAM_PHYS_BASE);23852386u32 lbw_rng0_base = 0xFC440000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2387u32 lbw_rng0_mask = 0xFFFF0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;23882389u32 lbw_rng1_base = 0xFC480000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2390u32 lbw_rng1_mask = 0xFFF80000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;23912392u32 lbw_rng2_base = 0xFC600000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2393u32 lbw_rng2_mask = 0xFFE00000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;23942395u32 lbw_rng3_base = 0xFC800000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2396u32 lbw_rng3_mask = 0xFFF00000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;23972398u32 lbw_rng4_base = 0xFCC02000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2399u32 lbw_rng4_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24002401u32 lbw_rng5_base = 0xFCC40000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2402u32 lbw_rng5_mask = 0xFFFF8000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24032404u32 lbw_rng6_base = 0xFCC48000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2405u32 lbw_rng6_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24062407u32 lbw_rng7_base = 0xFCC4A000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2408u32 lbw_rng7_mask = 0xFFFFE000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24092410u32 lbw_rng8_base = 0xFCC4C000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2411u32 lbw_rng8_mask = 0xFFFFC000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24122413u32 lbw_rng9_base = 0xFCC50000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2414u32 lbw_rng9_mask = 0xFFFF0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24152416u32 lbw_rng10_base = 0xFCC60000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2417u32 lbw_rng10_mask = 0xFFFE0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24182419u32 lbw_rng11_base = 0xFCE02000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2420u32 lbw_rng11_mask = 0xFFFFE000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24212422u32 lbw_rng12_base = 0xFE484000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2423u32 lbw_rng12_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24242425u32 lbw_rng13_base = 0xFEC43000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;2426u32 lbw_rng13_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK;24272428WREG32(mmDMA_MACRO_LBW_RANGE_HIT_BLOCK, 0xFFFF);2429WREG32(mmDMA_MACRO_HBW_RANGE_HIT_BLOCK, 0xFF);24302431if (!(goya->hw_cap_initialized & HW_CAP_MMU)) {2432WREG32(mmDMA_MACRO_HBW_RANGE_HIT_BLOCK, 0xFE);24332434/* Protect HOST */2435WREG32(mmDMA_MACRO_HBW_RANGE_BASE_31_0_0, 0);2436WREG32(mmDMA_MACRO_HBW_RANGE_BASE_49_32_0, 0);2437WREG32(mmDMA_MACRO_HBW_RANGE_MASK_31_0_0, 0);2438WREG32(mmDMA_MACRO_HBW_RANGE_MASK_49_32_0, 0xFFF80);2439}24402441/*2442* Protect DDR @2443* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2444* The mask protects the first 512MB2445*/2446WREG32(mmDMA_MACRO_HBW_RANGE_BASE_31_0_1, dram_addr_lo);2447WREG32(mmDMA_MACRO_HBW_RANGE_BASE_49_32_1, dram_addr_hi);2448WREG32(mmDMA_MACRO_HBW_RANGE_MASK_31_0_1, 0xE0000000);2449WREG32(mmDMA_MACRO_HBW_RANGE_MASK_49_32_1, 0x3FFFF);24502451/* Protect registers */24522453WREG32(mmDMA_MACRO_LBW_RANGE_BASE_0, lbw_rng0_base);2454WREG32(mmDMA_MACRO_LBW_RANGE_MASK_0, lbw_rng0_mask);2455WREG32(mmDMA_MACRO_LBW_RANGE_BASE_1, lbw_rng1_base);2456WREG32(mmDMA_MACRO_LBW_RANGE_MASK_1, lbw_rng1_mask);2457WREG32(mmDMA_MACRO_LBW_RANGE_BASE_2, lbw_rng2_base);2458WREG32(mmDMA_MACRO_LBW_RANGE_MASK_2, lbw_rng2_mask);2459WREG32(mmDMA_MACRO_LBW_RANGE_BASE_3, lbw_rng3_base);2460WREG32(mmDMA_MACRO_LBW_RANGE_MASK_3, lbw_rng3_mask);2461WREG32(mmDMA_MACRO_LBW_RANGE_BASE_4, lbw_rng4_base);2462WREG32(mmDMA_MACRO_LBW_RANGE_MASK_4, lbw_rng4_mask);2463WREG32(mmDMA_MACRO_LBW_RANGE_BASE_5, lbw_rng5_base);2464WREG32(mmDMA_MACRO_LBW_RANGE_MASK_5, lbw_rng5_mask);2465WREG32(mmDMA_MACRO_LBW_RANGE_BASE_6, lbw_rng6_base);2466WREG32(mmDMA_MACRO_LBW_RANGE_MASK_6, lbw_rng6_mask);2467WREG32(mmDMA_MACRO_LBW_RANGE_BASE_7, lbw_rng7_base);2468WREG32(mmDMA_MACRO_LBW_RANGE_MASK_7, lbw_rng7_mask);2469WREG32(mmDMA_MACRO_LBW_RANGE_BASE_8, lbw_rng8_base);2470WREG32(mmDMA_MACRO_LBW_RANGE_MASK_8, lbw_rng8_mask);2471WREG32(mmDMA_MACRO_LBW_RANGE_BASE_9, lbw_rng9_base);2472WREG32(mmDMA_MACRO_LBW_RANGE_MASK_9, lbw_rng9_mask);2473WREG32(mmDMA_MACRO_LBW_RANGE_BASE_10, lbw_rng10_base);2474WREG32(mmDMA_MACRO_LBW_RANGE_MASK_10, lbw_rng10_mask);2475WREG32(mmDMA_MACRO_LBW_RANGE_BASE_11, lbw_rng11_base);2476WREG32(mmDMA_MACRO_LBW_RANGE_MASK_11, lbw_rng11_mask);2477WREG32(mmDMA_MACRO_LBW_RANGE_BASE_12, lbw_rng12_base);2478WREG32(mmDMA_MACRO_LBW_RANGE_MASK_12, lbw_rng12_mask);2479WREG32(mmDMA_MACRO_LBW_RANGE_BASE_13, lbw_rng13_base);2480WREG32(mmDMA_MACRO_LBW_RANGE_MASK_13, lbw_rng13_mask);24812482WREG32(mmMME1_RTR_LBW_RANGE_HIT, 0xFFFF);2483WREG32(mmMME2_RTR_LBW_RANGE_HIT, 0xFFFF);2484WREG32(mmMME3_RTR_LBW_RANGE_HIT, 0xFFFF);2485WREG32(mmMME4_RTR_LBW_RANGE_HIT, 0xFFFF);2486WREG32(mmMME5_RTR_LBW_RANGE_HIT, 0xFFFF);2487WREG32(mmMME6_RTR_LBW_RANGE_HIT, 0xFFFF);24882489WREG32(mmMME1_RTR_HBW_RANGE_HIT, 0xFE);2490WREG32(mmMME2_RTR_HBW_RANGE_HIT, 0xFE);2491WREG32(mmMME3_RTR_HBW_RANGE_HIT, 0xFE);2492WREG32(mmMME4_RTR_HBW_RANGE_HIT, 0xFE);2493WREG32(mmMME5_RTR_HBW_RANGE_HIT, 0xFE);2494WREG32(mmMME6_RTR_HBW_RANGE_HIT, 0xFE);24952496/* Protect HOST */2497WREG32(mmMME1_RTR_HBW_RANGE_BASE_L_0, 0);2498WREG32(mmMME1_RTR_HBW_RANGE_BASE_H_0, 0);2499WREG32(mmMME1_RTR_HBW_RANGE_MASK_L_0, 0);2500WREG32(mmMME1_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25012502WREG32(mmMME2_RTR_HBW_RANGE_BASE_L_0, 0);2503WREG32(mmMME2_RTR_HBW_RANGE_BASE_H_0, 0);2504WREG32(mmMME2_RTR_HBW_RANGE_MASK_L_0, 0);2505WREG32(mmMME2_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25062507WREG32(mmMME3_RTR_HBW_RANGE_BASE_L_0, 0);2508WREG32(mmMME3_RTR_HBW_RANGE_BASE_H_0, 0);2509WREG32(mmMME3_RTR_HBW_RANGE_MASK_L_0, 0);2510WREG32(mmMME3_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25112512WREG32(mmMME4_RTR_HBW_RANGE_BASE_L_0, 0);2513WREG32(mmMME4_RTR_HBW_RANGE_BASE_H_0, 0);2514WREG32(mmMME4_RTR_HBW_RANGE_MASK_L_0, 0);2515WREG32(mmMME4_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25162517WREG32(mmMME5_RTR_HBW_RANGE_BASE_L_0, 0);2518WREG32(mmMME5_RTR_HBW_RANGE_BASE_H_0, 0);2519WREG32(mmMME5_RTR_HBW_RANGE_MASK_L_0, 0);2520WREG32(mmMME5_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25212522WREG32(mmMME6_RTR_HBW_RANGE_BASE_L_0, 0);2523WREG32(mmMME6_RTR_HBW_RANGE_BASE_H_0, 0);2524WREG32(mmMME6_RTR_HBW_RANGE_MASK_L_0, 0);2525WREG32(mmMME6_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);25262527/*2528* Protect DDR @2529* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2530* The mask protects the first 512MB2531*/2532WREG32(mmMME1_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2533WREG32(mmMME1_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2534WREG32(mmMME1_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2535WREG32(mmMME1_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25362537WREG32(mmMME2_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2538WREG32(mmMME2_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2539WREG32(mmMME2_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2540WREG32(mmMME2_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25412542WREG32(mmMME3_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2543WREG32(mmMME3_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2544WREG32(mmMME3_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2545WREG32(mmMME3_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25462547WREG32(mmMME4_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2548WREG32(mmMME4_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2549WREG32(mmMME4_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2550WREG32(mmMME4_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25512552WREG32(mmMME5_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2553WREG32(mmMME5_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2554WREG32(mmMME5_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2555WREG32(mmMME5_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25562557WREG32(mmMME6_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2558WREG32(mmMME6_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2559WREG32(mmMME6_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2560WREG32(mmMME6_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);25612562WREG32(mmMME1_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2563WREG32(mmMME1_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2564WREG32(mmMME1_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2565WREG32(mmMME1_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2566WREG32(mmMME1_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2567WREG32(mmMME1_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2568WREG32(mmMME1_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2569WREG32(mmMME1_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2570WREG32(mmMME1_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2571WREG32(mmMME1_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2572WREG32(mmMME1_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2573WREG32(mmMME1_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2574WREG32(mmMME1_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2575WREG32(mmMME1_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2576WREG32(mmMME1_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2577WREG32(mmMME1_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2578WREG32(mmMME1_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2579WREG32(mmMME1_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2580WREG32(mmMME1_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2581WREG32(mmMME1_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2582WREG32(mmMME1_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2583WREG32(mmMME1_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2584WREG32(mmMME1_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2585WREG32(mmMME1_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2586WREG32(mmMME1_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2587WREG32(mmMME1_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2588WREG32(mmMME1_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2589WREG32(mmMME1_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);25902591WREG32(mmMME2_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2592WREG32(mmMME2_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2593WREG32(mmMME2_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2594WREG32(mmMME2_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2595WREG32(mmMME2_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2596WREG32(mmMME2_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2597WREG32(mmMME2_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2598WREG32(mmMME2_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2599WREG32(mmMME2_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2600WREG32(mmMME2_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2601WREG32(mmMME2_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2602WREG32(mmMME2_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2603WREG32(mmMME2_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2604WREG32(mmMME2_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2605WREG32(mmMME2_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2606WREG32(mmMME2_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2607WREG32(mmMME2_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2608WREG32(mmMME2_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2609WREG32(mmMME2_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2610WREG32(mmMME2_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2611WREG32(mmMME2_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2612WREG32(mmMME2_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2613WREG32(mmMME2_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2614WREG32(mmMME2_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2615WREG32(mmMME2_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2616WREG32(mmMME2_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2617WREG32(mmMME2_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2618WREG32(mmMME2_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);26192620WREG32(mmMME3_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2621WREG32(mmMME3_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2622WREG32(mmMME3_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2623WREG32(mmMME3_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2624WREG32(mmMME3_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2625WREG32(mmMME3_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2626WREG32(mmMME3_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2627WREG32(mmMME3_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2628WREG32(mmMME3_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2629WREG32(mmMME3_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2630WREG32(mmMME3_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2631WREG32(mmMME3_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2632WREG32(mmMME3_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2633WREG32(mmMME3_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2634WREG32(mmMME3_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2635WREG32(mmMME3_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2636WREG32(mmMME3_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2637WREG32(mmMME3_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2638WREG32(mmMME3_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2639WREG32(mmMME3_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2640WREG32(mmMME3_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2641WREG32(mmMME3_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2642WREG32(mmMME3_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2643WREG32(mmMME3_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2644WREG32(mmMME3_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2645WREG32(mmMME3_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2646WREG32(mmMME3_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2647WREG32(mmMME3_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);26482649WREG32(mmMME4_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2650WREG32(mmMME4_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2651WREG32(mmMME4_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2652WREG32(mmMME4_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2653WREG32(mmMME4_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2654WREG32(mmMME4_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2655WREG32(mmMME4_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2656WREG32(mmMME4_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2657WREG32(mmMME4_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2658WREG32(mmMME4_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2659WREG32(mmMME4_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2660WREG32(mmMME4_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2661WREG32(mmMME4_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2662WREG32(mmMME4_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2663WREG32(mmMME4_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2664WREG32(mmMME4_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2665WREG32(mmMME4_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2666WREG32(mmMME4_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2667WREG32(mmMME4_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2668WREG32(mmMME4_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2669WREG32(mmMME4_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2670WREG32(mmMME4_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2671WREG32(mmMME4_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2672WREG32(mmMME4_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2673WREG32(mmMME4_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2674WREG32(mmMME4_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2675WREG32(mmMME4_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2676WREG32(mmMME4_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);26772678WREG32(mmMME5_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2679WREG32(mmMME5_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2680WREG32(mmMME5_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2681WREG32(mmMME5_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2682WREG32(mmMME5_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2683WREG32(mmMME5_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2684WREG32(mmMME5_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2685WREG32(mmMME5_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2686WREG32(mmMME5_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2687WREG32(mmMME5_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2688WREG32(mmMME5_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2689WREG32(mmMME5_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2690WREG32(mmMME5_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2691WREG32(mmMME5_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2692WREG32(mmMME5_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2693WREG32(mmMME5_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2694WREG32(mmMME5_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2695WREG32(mmMME5_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2696WREG32(mmMME5_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2697WREG32(mmMME5_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2698WREG32(mmMME5_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2699WREG32(mmMME5_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2700WREG32(mmMME5_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2701WREG32(mmMME5_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2702WREG32(mmMME5_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2703WREG32(mmMME5_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2704WREG32(mmMME5_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2705WREG32(mmMME5_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);27062707WREG32(mmMME6_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2708WREG32(mmMME6_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2709WREG32(mmMME6_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2710WREG32(mmMME6_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2711WREG32(mmMME6_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2712WREG32(mmMME6_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2713WREG32(mmMME6_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2714WREG32(mmMME6_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2715WREG32(mmMME6_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2716WREG32(mmMME6_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2717WREG32(mmMME6_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2718WREG32(mmMME6_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2719WREG32(mmMME6_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2720WREG32(mmMME6_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2721WREG32(mmMME6_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2722WREG32(mmMME6_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2723WREG32(mmMME6_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2724WREG32(mmMME6_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2725WREG32(mmMME6_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2726WREG32(mmMME6_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2727WREG32(mmMME6_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2728WREG32(mmMME6_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2729WREG32(mmMME6_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2730WREG32(mmMME6_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2731WREG32(mmMME6_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2732WREG32(mmMME6_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2733WREG32(mmMME6_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2734WREG32(mmMME6_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);27352736WREG32(mmTPC0_NRTR_LBW_RANGE_HIT, 0xFFFF);2737WREG32(mmTPC0_NRTR_HBW_RANGE_HIT, 0xFE);27382739/* Protect HOST */2740WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_L_0, 0);2741WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_H_0, 0);2742WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_L_0, 0);2743WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_H_0, 0xFFF80);27442745/*2746* Protect DDR @2747* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2748* The mask protects the first 512MB2749*/2750WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2751WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2752WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_L_1, 0xE0000000);2753WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_H_1, 0x3FFFF);27542755WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_0, lbw_rng0_base);2756WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2757WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_1, lbw_rng1_base);2758WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2759WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_2, lbw_rng2_base);2760WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2761WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_3, lbw_rng3_base);2762WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2763WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_4, lbw_rng4_base);2764WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2765WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_5, lbw_rng5_base);2766WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2767WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_6, lbw_rng6_base);2768WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2769WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_7, lbw_rng7_base);2770WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2771WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_8, lbw_rng8_base);2772WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2773WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_9, lbw_rng9_base);2774WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2775WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_10, lbw_rng10_base);2776WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2777WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_11, lbw_rng11_base);2778WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2779WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_12, lbw_rng12_base);2780WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2781WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_13, lbw_rng13_base);2782WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_13, lbw_rng13_mask);27832784WREG32(mmTPC1_RTR_LBW_RANGE_HIT, 0xFFFF);2785WREG32(mmTPC1_RTR_HBW_RANGE_HIT, 0xFE);27862787/* Protect HOST */2788WREG32(mmTPC1_RTR_HBW_RANGE_BASE_L_0, 0);2789WREG32(mmTPC1_RTR_HBW_RANGE_BASE_H_0, 0);2790WREG32(mmTPC1_RTR_HBW_RANGE_MASK_L_0, 0);2791WREG32(mmTPC1_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);27922793/*2794* Protect DDR @2795* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2796* The mask protects the first 512MB2797*/2798WREG32(mmTPC1_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2799WREG32(mmTPC1_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2800WREG32(mmTPC1_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2801WREG32(mmTPC1_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);28022803WREG32(mmTPC1_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2804WREG32(mmTPC1_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2805WREG32(mmTPC1_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2806WREG32(mmTPC1_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2807WREG32(mmTPC1_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2808WREG32(mmTPC1_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2809WREG32(mmTPC1_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2810WREG32(mmTPC1_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2811WREG32(mmTPC1_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2812WREG32(mmTPC1_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2813WREG32(mmTPC1_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2814WREG32(mmTPC1_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2815WREG32(mmTPC1_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2816WREG32(mmTPC1_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2817WREG32(mmTPC1_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2818WREG32(mmTPC1_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2819WREG32(mmTPC1_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2820WREG32(mmTPC1_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2821WREG32(mmTPC1_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2822WREG32(mmTPC1_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2823WREG32(mmTPC1_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2824WREG32(mmTPC1_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2825WREG32(mmTPC1_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2826WREG32(mmTPC1_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2827WREG32(mmTPC1_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2828WREG32(mmTPC1_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2829WREG32(mmTPC1_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2830WREG32(mmTPC1_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);28312832WREG32(mmTPC2_RTR_LBW_RANGE_HIT, 0xFFFF);2833WREG32(mmTPC2_RTR_HBW_RANGE_HIT, 0xFE);28342835/* Protect HOST */2836WREG32(mmTPC2_RTR_HBW_RANGE_BASE_L_0, 0);2837WREG32(mmTPC2_RTR_HBW_RANGE_BASE_H_0, 0);2838WREG32(mmTPC2_RTR_HBW_RANGE_MASK_L_0, 0);2839WREG32(mmTPC2_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);28402841/*2842* Protect DDR @2843* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2844* The mask protects the first 512MB2845*/2846WREG32(mmTPC2_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2847WREG32(mmTPC2_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2848WREG32(mmTPC2_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2849WREG32(mmTPC2_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);28502851WREG32(mmTPC2_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2852WREG32(mmTPC2_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2853WREG32(mmTPC2_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2854WREG32(mmTPC2_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2855WREG32(mmTPC2_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2856WREG32(mmTPC2_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2857WREG32(mmTPC2_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2858WREG32(mmTPC2_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2859WREG32(mmTPC2_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2860WREG32(mmTPC2_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2861WREG32(mmTPC2_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2862WREG32(mmTPC2_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2863WREG32(mmTPC2_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2864WREG32(mmTPC2_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2865WREG32(mmTPC2_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2866WREG32(mmTPC2_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2867WREG32(mmTPC2_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2868WREG32(mmTPC2_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2869WREG32(mmTPC2_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2870WREG32(mmTPC2_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2871WREG32(mmTPC2_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2872WREG32(mmTPC2_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2873WREG32(mmTPC2_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2874WREG32(mmTPC2_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2875WREG32(mmTPC2_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2876WREG32(mmTPC2_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2877WREG32(mmTPC2_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2878WREG32(mmTPC2_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);28792880WREG32(mmTPC3_RTR_LBW_RANGE_HIT, 0xFFFF);2881WREG32(mmTPC3_RTR_HBW_RANGE_HIT, 0xFE);28822883/* Protect HOST */2884WREG32(mmTPC3_RTR_HBW_RANGE_BASE_L_0, 0);2885WREG32(mmTPC3_RTR_HBW_RANGE_BASE_H_0, 0);2886WREG32(mmTPC3_RTR_HBW_RANGE_MASK_L_0, 0);2887WREG32(mmTPC3_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);28882889/*2890* Protect DDR @2891* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2892* The mask protects the first 512MB2893*/2894WREG32(mmTPC3_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2895WREG32(mmTPC3_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2896WREG32(mmTPC3_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2897WREG32(mmTPC3_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);28982899WREG32(mmTPC3_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2900WREG32(mmTPC3_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2901WREG32(mmTPC3_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2902WREG32(mmTPC3_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2903WREG32(mmTPC3_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2904WREG32(mmTPC3_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2905WREG32(mmTPC3_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2906WREG32(mmTPC3_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2907WREG32(mmTPC3_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2908WREG32(mmTPC3_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2909WREG32(mmTPC3_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2910WREG32(mmTPC3_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2911WREG32(mmTPC3_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2912WREG32(mmTPC3_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2913WREG32(mmTPC3_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2914WREG32(mmTPC3_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2915WREG32(mmTPC3_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2916WREG32(mmTPC3_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2917WREG32(mmTPC3_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2918WREG32(mmTPC3_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2919WREG32(mmTPC3_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2920WREG32(mmTPC3_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2921WREG32(mmTPC3_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2922WREG32(mmTPC3_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2923WREG32(mmTPC3_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2924WREG32(mmTPC3_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2925WREG32(mmTPC3_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2926WREG32(mmTPC3_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);29272928WREG32(mmTPC4_RTR_LBW_RANGE_HIT, 0xFFFF);2929WREG32(mmTPC4_RTR_HBW_RANGE_HIT, 0xFE);29302931/* Protect HOST */2932WREG32(mmTPC4_RTR_HBW_RANGE_BASE_L_0, 0);2933WREG32(mmTPC4_RTR_HBW_RANGE_BASE_H_0, 0);2934WREG32(mmTPC4_RTR_HBW_RANGE_MASK_L_0, 0);2935WREG32(mmTPC4_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);29362937/*2938* Protect DDR @2939* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2940* The mask protects the first 512MB2941*/2942WREG32(mmTPC4_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2943WREG32(mmTPC4_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2944WREG32(mmTPC4_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2945WREG32(mmTPC4_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);29462947WREG32(mmTPC4_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2948WREG32(mmTPC4_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2949WREG32(mmTPC4_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2950WREG32(mmTPC4_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2951WREG32(mmTPC4_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);2952WREG32(mmTPC4_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);2953WREG32(mmTPC4_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);2954WREG32(mmTPC4_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);2955WREG32(mmTPC4_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);2956WREG32(mmTPC4_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);2957WREG32(mmTPC4_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);2958WREG32(mmTPC4_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);2959WREG32(mmTPC4_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);2960WREG32(mmTPC4_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);2961WREG32(mmTPC4_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);2962WREG32(mmTPC4_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);2963WREG32(mmTPC4_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);2964WREG32(mmTPC4_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);2965WREG32(mmTPC4_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);2966WREG32(mmTPC4_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);2967WREG32(mmTPC4_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);2968WREG32(mmTPC4_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);2969WREG32(mmTPC4_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);2970WREG32(mmTPC4_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);2971WREG32(mmTPC4_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);2972WREG32(mmTPC4_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);2973WREG32(mmTPC4_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);2974WREG32(mmTPC4_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);29752976WREG32(mmTPC5_RTR_LBW_RANGE_HIT, 0xFFFF);2977WREG32(mmTPC5_RTR_HBW_RANGE_HIT, 0xFE);29782979/* Protect HOST */2980WREG32(mmTPC5_RTR_HBW_RANGE_BASE_L_0, 0);2981WREG32(mmTPC5_RTR_HBW_RANGE_BASE_H_0, 0);2982WREG32(mmTPC5_RTR_HBW_RANGE_MASK_L_0, 0);2983WREG32(mmTPC5_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);29842985/*2986* Protect DDR @2987* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END2988* The mask protects the first 512MB2989*/2990WREG32(mmTPC5_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);2991WREG32(mmTPC5_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);2992WREG32(mmTPC5_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);2993WREG32(mmTPC5_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);29942995WREG32(mmTPC5_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);2996WREG32(mmTPC5_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);2997WREG32(mmTPC5_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);2998WREG32(mmTPC5_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);2999WREG32(mmTPC5_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);3000WREG32(mmTPC5_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);3001WREG32(mmTPC5_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);3002WREG32(mmTPC5_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);3003WREG32(mmTPC5_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);3004WREG32(mmTPC5_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);3005WREG32(mmTPC5_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);3006WREG32(mmTPC5_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);3007WREG32(mmTPC5_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);3008WREG32(mmTPC5_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);3009WREG32(mmTPC5_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);3010WREG32(mmTPC5_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);3011WREG32(mmTPC5_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);3012WREG32(mmTPC5_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);3013WREG32(mmTPC5_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);3014WREG32(mmTPC5_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);3015WREG32(mmTPC5_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);3016WREG32(mmTPC5_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);3017WREG32(mmTPC5_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);3018WREG32(mmTPC5_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);3019WREG32(mmTPC5_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);3020WREG32(mmTPC5_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);3021WREG32(mmTPC5_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);3022WREG32(mmTPC5_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);30233024WREG32(mmTPC6_RTR_LBW_RANGE_HIT, 0xFFFF);3025WREG32(mmTPC6_RTR_HBW_RANGE_HIT, 0xFE);30263027/* Protect HOST */3028WREG32(mmTPC6_RTR_HBW_RANGE_BASE_L_0, 0);3029WREG32(mmTPC6_RTR_HBW_RANGE_BASE_H_0, 0);3030WREG32(mmTPC6_RTR_HBW_RANGE_MASK_L_0, 0);3031WREG32(mmTPC6_RTR_HBW_RANGE_MASK_H_0, 0xFFF80);30323033/*3034* Protect DDR @3035* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END3036* The mask protects the first 512MB3037*/3038WREG32(mmTPC6_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo);3039WREG32(mmTPC6_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi);3040WREG32(mmTPC6_RTR_HBW_RANGE_MASK_L_1, 0xE0000000);3041WREG32(mmTPC6_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF);30423043WREG32(mmTPC6_RTR_LBW_RANGE_BASE_0, lbw_rng0_base);3044WREG32(mmTPC6_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask);3045WREG32(mmTPC6_RTR_LBW_RANGE_BASE_1, lbw_rng1_base);3046WREG32(mmTPC6_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask);3047WREG32(mmTPC6_RTR_LBW_RANGE_BASE_2, lbw_rng2_base);3048WREG32(mmTPC6_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask);3049WREG32(mmTPC6_RTR_LBW_RANGE_BASE_3, lbw_rng3_base);3050WREG32(mmTPC6_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask);3051WREG32(mmTPC6_RTR_LBW_RANGE_BASE_4, lbw_rng4_base);3052WREG32(mmTPC6_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask);3053WREG32(mmTPC6_RTR_LBW_RANGE_BASE_5, lbw_rng5_base);3054WREG32(mmTPC6_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask);3055WREG32(mmTPC6_RTR_LBW_RANGE_BASE_6, lbw_rng6_base);3056WREG32(mmTPC6_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask);3057WREG32(mmTPC6_RTR_LBW_RANGE_BASE_7, lbw_rng7_base);3058WREG32(mmTPC6_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask);3059WREG32(mmTPC6_RTR_LBW_RANGE_BASE_8, lbw_rng8_base);3060WREG32(mmTPC6_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask);3061WREG32(mmTPC6_RTR_LBW_RANGE_BASE_9, lbw_rng9_base);3062WREG32(mmTPC6_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask);3063WREG32(mmTPC6_RTR_LBW_RANGE_BASE_10, lbw_rng10_base);3064WREG32(mmTPC6_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask);3065WREG32(mmTPC6_RTR_LBW_RANGE_BASE_11, lbw_rng11_base);3066WREG32(mmTPC6_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask);3067WREG32(mmTPC6_RTR_LBW_RANGE_BASE_12, lbw_rng12_base);3068WREG32(mmTPC6_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask);3069WREG32(mmTPC6_RTR_LBW_RANGE_BASE_13, lbw_rng13_base);3070WREG32(mmTPC6_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask);30713072WREG32(mmTPC7_NRTR_LBW_RANGE_HIT, 0xFFFF);3073WREG32(mmTPC7_NRTR_HBW_RANGE_HIT, 0xFE);30743075/* Protect HOST */3076WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_L_0, 0);3077WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_H_0, 0);3078WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_L_0, 0);3079WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_H_0, 0xFFF80);30803081/*3082* Protect DDR @3083* DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END3084* The mask protects the first 512MB3085*/3086WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_L_1, dram_addr_lo);3087WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_H_1, dram_addr_hi);3088WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_L_1, 0xE0000000);3089WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_H_1, 0x3FFFF);30903091WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_0, lbw_rng0_base);3092WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_0, lbw_rng0_mask);3093WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_1, lbw_rng1_base);3094WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_1, lbw_rng1_mask);3095WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_2, lbw_rng2_base);3096WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_2, lbw_rng2_mask);3097WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_3, lbw_rng3_base);3098WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_3, lbw_rng3_mask);3099WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_4, lbw_rng4_base);3100WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_4, lbw_rng4_mask);3101WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_5, lbw_rng5_base);3102WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_5, lbw_rng5_mask);3103WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_6, lbw_rng6_base);3104WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_6, lbw_rng6_mask);3105WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_7, lbw_rng7_base);3106WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_7, lbw_rng7_mask);3107WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_8, lbw_rng8_base);3108WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_8, lbw_rng8_mask);3109WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_9, lbw_rng9_base);3110WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_9, lbw_rng9_mask);3111WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_10, lbw_rng10_base);3112WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_10, lbw_rng10_mask);3113WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_11, lbw_rng11_base);3114WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_11, lbw_rng11_mask);3115WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_12, lbw_rng12_base);3116WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_12, lbw_rng12_mask);3117WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_13, lbw_rng13_base);3118WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_13, lbw_rng13_mask);31193120goya_init_protection_bits(hdev);3121}31223123void goya_ack_protection_bits_errors(struct hl_device *hdev)3124{31253126}312731283129