Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/accel/habanalabs/include/gaudi2/gaudi2.h
26446 views
1
/* SPDX-License-Identifier: GPL-2.0
2
*
3
* Copyright 2020-2022 HabanaLabs, Ltd.
4
* All Rights Reserved.
5
*
6
*/
7
8
#ifndef GAUDI2_H
9
#define GAUDI2_H
10
11
#define SRAM_CFG_BAR_ID 0
12
#define MSIX_BAR_ID 2
13
#define DRAM_BAR_ID 4
14
15
/* Refers to CFG_REGION_SIZE, BAR0_RSRVD_SIZE and SRAM_SIZE */
16
#define CFG_BAR_SIZE 0x10000000ull /* 256MB */
17
18
#define MSIX_BAR_SIZE 0x4000ull /* 16KB */
19
20
#define CFG_BASE 0x1000007FF8000000ull
21
#define CFG_SIZE 0x8000000ull /* 96MB CFG + 32MB DBG*/
22
#define CFG_REGION_SIZE 0xC000000ull /* 192MB */
23
24
#define STM_FLASH_BASE_ADDR 0x1000007FF4000000ull /* Not 256MB aligned */
25
#define STM_FLASH_ALIGNED_OFF 0x4000000ull /* 256 MB alignment */
26
#define STM_FLASH_SIZE 0x2000000ull /* 32MB */
27
28
#define SPI_FLASH_BASE_ADDR 0x1000007FF6000000ull
29
#define SPI_FLASH_SIZE 0x1000000ull /* 16MB */
30
31
#define SCRATCHPAD_SRAM_ADDR 0x1000007FF7FE0000ull
32
#define SCRATCHPAD_SRAM_SIZE 0x10000ull /* 64KB */
33
34
#define PCIE_FW_SRAM_ADDR 0x1000007FF7FF0000ull
35
#define PCIE_FW_SRAM_SIZE 0x8000 /* 32KB */
36
37
#define BAR0_RSRVD_BASE_ADDR 0x1000FFFFFC000000ull
38
#define BAR0_RSRVD_SIZE 0x1000000ull /* 16MB */
39
40
#define SRAM_BASE_ADDR 0x1000FFFFFD000000ull
41
#define SRAM_SIZE 0x3000000ull /* 48MB */
42
43
#define DRAM_PHYS_BASE 0x1001000000000000ull
44
45
/* every hint address is masked accordingly */
46
#define DRAM_VA_HINT_MASK 0xFFFFFFFFFFFFull /* 48bit mask */
47
48
#define HOST_PHYS_BASE_0 0x0000000000000000ull
49
#define HOST_PHYS_SIZE_0 0x0100000000000000ull /* 64PB (56 bits) */
50
51
#define HOST_PHYS_BASE_1 0xFF00000000000000ull
52
#define HOST_PHYS_SIZE_1 0x0100000000000000ull /* 64PB (56 bits) */
53
54
#define RESERVED_VA_RANGE_FOR_ARC_ON_HBM_START 0x1001500000000000ull
55
#define RESERVED_VA_RANGE_FOR_ARC_ON_HBM_END 0x10016FFFFFFFFFFFull
56
57
#define RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_START 0xFFF077FFFFFF0000ull
58
#define RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_END 0xFFF077FFFFFFFFFFull
59
60
#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_START 0xFFF0780000000000ull
61
#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_END 0xFFF07FFFFFFFFFFFull
62
63
#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_HPAGE_START 0xFFF0F80000000000ull
64
#define RESERVED_VA_RANGE_FOR_ARC_ON_HOST_HPAGE_END 0xFFF0FFFFFFFFFFFFull
65
66
#define RESERVED_MSIX_UNEXPECTED_USER_ERROR_INTERRUPT 127
67
68
#define GAUDI2_MSIX_ENTRIES 128
69
70
#define QMAN_PQ_ENTRY_SIZE 16 /* Bytes */
71
72
#define MAX_ASID 2
73
74
#define NUM_ARC_CPUS 69
75
76
/* Every ARC cpu in the system contains a single DCCM block
77
* except MME and Scheduler ARCs which contain 2 DCCM blocks
78
*/
79
#define ARC_DCCM_BLOCK_SIZE 0x8000
80
81
#define NUM_OF_DCORES 4
82
#define NUM_OF_SFT 4
83
#define NUM_OF_PSOC_ARC 2
84
#define NUM_OF_SCHEDULER_ARC 6
85
86
#define NUM_OF_PQ_PER_QMAN 4
87
#define NUM_OF_CQ_PER_QMAN 5
88
#define NUM_OF_CP_PER_QMAN 5
89
#define NUM_OF_EDMA_PER_DCORE 2
90
#define NUM_OF_HIF_PER_DCORE 4
91
#define NUM_OF_PDMA 2
92
#define NUM_OF_TPC_PER_DCORE 6
93
#define NUM_DCORE0_TPC 7
94
#define NUM_DCORE1_TPC NUM_OF_TPC_PER_DCORE
95
#define NUM_DCORE2_TPC NUM_OF_TPC_PER_DCORE
96
#define NUM_DCORE3_TPC NUM_OF_TPC_PER_DCORE
97
#define NUM_OF_DEC_PER_DCORE 2
98
#define NUM_OF_ROT 2
99
#define NUM_OF_HMMU_PER_DCORE 4
100
#define NUM_OF_MME_PER_DCORE 1
101
#define NUM_OF_MME_SBTE_PER_DCORE 5
102
#define NUM_OF_MME_WB_PER_DCORE 2
103
#define NUM_OF_RTR_PER_DCORE 8
104
#define NUM_OF_VDEC_PER_DCORE 2
105
#define NUM_OF_IF_RTR_PER_SFT 3
106
#define NUM_OF_PCIE_VDEC 2
107
#define NUM_OF_ARC_FARMS_ARC 4
108
#define NUM_OF_XBAR 4
109
110
#define TPC_NUM_OF_KERNEL_TENSORS 16
111
#define TPC_NUM_OF_QM_TENSORS 16
112
113
#define MME_NUM_OF_LFSR_SEEDS 256
114
115
#define NIC_NUMBER_OF_MACROS 12
116
117
#define NIC_NUMBER_OF_QM_PER_MACRO 2
118
119
#define NIC_NUMBER_OF_ENGINES (NIC_NUMBER_OF_MACROS * 2)
120
121
#define NIC_MAX_NUMBER_OF_PORTS (NIC_NUMBER_OF_ENGINES * 2)
122
123
#define DEVICE_CACHE_LINE_SIZE 128
124
125
#endif /* GAUDI2_H */
126
127