162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * Copyright 2020-2022 HabanaLabs, Ltd. 462306a36Sopenharmony_ci * All Rights Reserved. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef GAUDI2_H 962306a36Sopenharmony_ci#define GAUDI2_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define SRAM_CFG_BAR_ID 0 1262306a36Sopenharmony_ci#define MSIX_BAR_ID 2 1362306a36Sopenharmony_ci#define DRAM_BAR_ID 4 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* Refers to CFG_REGION_SIZE, BAR0_RSRVD_SIZE and SRAM_SIZE */ 1662306a36Sopenharmony_ci#define CFG_BAR_SIZE 0x10000000ull /* 256MB */ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define MSIX_BAR_SIZE 0x4000ull /* 16KB */ 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define CFG_BASE 0x1000007FF8000000ull 2162306a36Sopenharmony_ci#define CFG_SIZE 0x8000000ull /* 96MB CFG + 32MB DBG*/ 2262306a36Sopenharmony_ci#define CFG_REGION_SIZE 0xC000000ull /* 192MB */ 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define STM_FLASH_BASE_ADDR 0x1000007FF4000000ull /* Not 256MB aligned */ 2562306a36Sopenharmony_ci#define STM_FLASH_ALIGNED_OFF 0x4000000ull /* 256 MB alignment */ 2662306a36Sopenharmony_ci#define STM_FLASH_SIZE 0x2000000ull /* 32MB */ 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define SPI_FLASH_BASE_ADDR 0x1000007FF6000000ull 2962306a36Sopenharmony_ci#define SPI_FLASH_SIZE 0x1000000ull /* 16MB */ 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#define SCRATCHPAD_SRAM_ADDR 0x1000007FF7FE0000ull 3262306a36Sopenharmony_ci#define SCRATCHPAD_SRAM_SIZE 0x10000ull /* 64KB */ 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#define PCIE_FW_SRAM_ADDR 0x1000007FF7FF0000ull 3562306a36Sopenharmony_ci#define PCIE_FW_SRAM_SIZE 0x8000 /* 32KB */ 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#define BAR0_RSRVD_BASE_ADDR 0x1000FFFFFC000000ull 3862306a36Sopenharmony_ci#define BAR0_RSRVD_SIZE 0x1000000ull /* 16MB */ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#define SRAM_BASE_ADDR 0x1000FFFFFD000000ull 4162306a36Sopenharmony_ci#define SRAM_SIZE 0x3000000ull /* 48MB */ 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci#define DRAM_PHYS_BASE 0x1001000000000000ull 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* every hint address is masked accordingly */ 4662306a36Sopenharmony_ci#define DRAM_VA_HINT_MASK 0xFFFFFFFFFFFFull /* 48bit mask */ 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#define HOST_PHYS_BASE_0 0x0000000000000000ull 4962306a36Sopenharmony_ci#define HOST_PHYS_SIZE_0 0x0100000000000000ull /* 64PB (56 bits) */ 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci#define HOST_PHYS_BASE_1 0xFF00000000000000ull 5262306a36Sopenharmony_ci#define HOST_PHYS_SIZE_1 0x0100000000000000ull /* 64PB (56 bits) */ 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HBM_START 0x1001500000000000ull 5562306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HBM_END 0x10016FFFFFFFFFFFull 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#define RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_START 0xFFF077FFFFFF0000ull 5862306a36Sopenharmony_ci#define RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_END 0xFFF077FFFFFFFFFFull 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_START 0xFFF0780000000000ull 6162306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_END 0xFFF07FFFFFFFFFFFull 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_HPAGE_START 0xFFF0F80000000000ull 6462306a36Sopenharmony_ci#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_HPAGE_END 0xFFF0FFFFFFFFFFFFull 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci#define RESERVED_MSIX_UNEXPECTED_USER_ERROR_INTERRUPT 256 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci#define GAUDI2_MSIX_ENTRIES 512 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci#define QMAN_PQ_ENTRY_SIZE 16 /* Bytes */ 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci#define MAX_ASID 2 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci#define NUM_ARC_CPUS 69 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci/* Every ARC cpu in the system contains a single DCCM block 7762306a36Sopenharmony_ci * except MME and Scheduler ARCs which contain 2 DCCM blocks 7862306a36Sopenharmony_ci */ 7962306a36Sopenharmony_ci#define ARC_DCCM_BLOCK_SIZE 0x8000 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci#define NUM_OF_DCORES 4 8262306a36Sopenharmony_ci#define NUM_OF_SFT 4 8362306a36Sopenharmony_ci#define NUM_OF_PSOC_ARC 2 8462306a36Sopenharmony_ci#define NUM_OF_SCHEDULER_ARC 6 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci#define NUM_OF_PQ_PER_QMAN 4 8762306a36Sopenharmony_ci#define NUM_OF_CQ_PER_QMAN 5 8862306a36Sopenharmony_ci#define NUM_OF_CP_PER_QMAN 5 8962306a36Sopenharmony_ci#define NUM_OF_EDMA_PER_DCORE 2 9062306a36Sopenharmony_ci#define NUM_OF_HIF_PER_DCORE 4 9162306a36Sopenharmony_ci#define NUM_OF_PDMA 2 9262306a36Sopenharmony_ci#define NUM_OF_TPC_PER_DCORE 6 9362306a36Sopenharmony_ci#define NUM_DCORE0_TPC 7 9462306a36Sopenharmony_ci#define NUM_DCORE1_TPC NUM_OF_TPC_PER_DCORE 9562306a36Sopenharmony_ci#define NUM_DCORE2_TPC NUM_OF_TPC_PER_DCORE 9662306a36Sopenharmony_ci#define NUM_DCORE3_TPC NUM_OF_TPC_PER_DCORE 9762306a36Sopenharmony_ci#define NUM_OF_DEC_PER_DCORE 2 9862306a36Sopenharmony_ci#define NUM_OF_ROT 2 9962306a36Sopenharmony_ci#define NUM_OF_HMMU_PER_DCORE 4 10062306a36Sopenharmony_ci#define NUM_OF_MME_PER_DCORE 1 10162306a36Sopenharmony_ci#define NUM_OF_MME_SBTE_PER_DCORE 5 10262306a36Sopenharmony_ci#define NUM_OF_MME_WB_PER_DCORE 2 10362306a36Sopenharmony_ci#define NUM_OF_RTR_PER_DCORE 8 10462306a36Sopenharmony_ci#define NUM_OF_VDEC_PER_DCORE 2 10562306a36Sopenharmony_ci#define NUM_OF_IF_RTR_PER_SFT 3 10662306a36Sopenharmony_ci#define NUM_OF_PCIE_VDEC 2 10762306a36Sopenharmony_ci#define NUM_OF_ARC_FARMS_ARC 4 10862306a36Sopenharmony_ci#define NUM_OF_XBAR 4 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci#define TPC_NUM_OF_KERNEL_TENSORS 16 11162306a36Sopenharmony_ci#define TPC_NUM_OF_QM_TENSORS 16 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci#define MME_NUM_OF_LFSR_SEEDS 256 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci#define NIC_NUMBER_OF_MACROS 12 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci#define NIC_NUMBER_OF_QM_PER_MACRO 2 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci#define NIC_NUMBER_OF_ENGINES (NIC_NUMBER_OF_MACROS * 2) 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci#define NIC_MAX_NUMBER_OF_PORTS (NIC_NUMBER_OF_ENGINES * 2) 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci#define DEVICE_CACHE_LINE_SIZE 128 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci#endif /* GAUDI2_H */ 126