1  /* SPDX-License-Identifier: GPL-2.0
2   *
3   * Copyright 2020 HabanaLabs, Ltd.
4   * All Rights Reserved.
5   *
6   */
7  
8  #ifndef GAUDI2_REG_MAP_H_
9  #define GAUDI2_REG_MAP_H_
10  
11  /*
12   * PSOC scratch-pad registers
13   */
14  #define mmHW_STATE				mmCPU_IF_KMD_HW_DIRTY_STATUS
15  #define mmPID_STATUS_REG			mmPSOC_GLOBAL_CONF_SCRATCHPAD_1
16  #define mmARM_STATUS_REG			mmPSOC_GLOBAL_CONF_SCRATCHPAD_2
17  #define mmGIC_TPC_QM_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_3
18  #define mmGIC_MME_QM_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_4
19  #define mmGIC_DMA_QM_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_5
20  #define mmGIC_ROT_QM_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_6
21  #define mmGIC_NIC_QM_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_7
22  #define mmGIC_DMA_CR_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_8
23  #define mmGIC_HOST_PI_UPD_IRQ_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_9
24  #define mmGIC_HOST_HALT_IRQ_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_10
25  #define mmGIC_HOST_INTS_IRQ_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_11
26  #define mmGIC_HOST_SOFT_RST_IRQ_POLL_REG	mmPSOC_GLOBAL_CONF_SCRATCHPAD_12
27  #define mmCPU_RST_STATUS_TO_HOST		mmPSOC_GLOBAL_CONF_SCRATCHPAD_14
28  /*
29   *  Single scratchpad register used for all ARCs to notify dccm queue full event to FW.
30   *  So a new event would overwrite any unhandled previous event. In other words, incase
31   *  of multiple events before previous ones are handled, last one would be considered.
32   */
33  #define mmENGINE_ARC_IRQ_CTRL_POLL_REG		mmPSOC_GLOBAL_CONF_SCRATCHPAD_15
34  #define mmPID_CFG_REG				mmPSOC_GLOBAL_CONF_SCRATCHPAD_18
35  #define mmGIC_RAZWI_STATUS_REG			mmPSOC_GLOBAL_CONF_SCRATCHPAD_19
36  #define mmCPU_BOOT_DEV_STS0			mmPSOC_GLOBAL_CONF_SCRATCHPAD_20
37  #define mmCPU_BOOT_DEV_STS1			mmPSOC_GLOBAL_CONF_SCRATCHPAD_21
38  #define mmCPU_CMD_STATUS_TO_HOST		mmPSOC_GLOBAL_CONF_SCRATCHPAD_23
39  #define mmCPU_BOOT_ERR0				mmPSOC_GLOBAL_CONF_SCRATCHPAD_24
40  #define mmCPU_BOOT_ERR1				mmPSOC_GLOBAL_CONF_SCRATCHPAD_25
41  #define mmUPD_STS				mmPSOC_GLOBAL_CONF_SCRATCHPAD_26
42  #define mmUPD_CMD				mmPSOC_GLOBAL_CONF_SCRATCHPAD_27
43  #define mmPPBOOT_VER_OFFSET			mmPSOC_GLOBAL_CONF_SCRATCHPAD_28
44  #define mmRDWR_TEST				mmPSOC_GLOBAL_CONF_SCRATCHPAD_30
45  #define mmBTL_ID				mmPSOC_GLOBAL_CONF_SCRATCHPAD_31
46  #define mmRST_SRC				mmPSOC_GLOBAL_CONF_COLD_RST_FLOPS_0
47  #define mmCOLD_RST_DATA				mmPSOC_GLOBAL_CONF_COLD_RST_FLOPS_2
48  #define mmUPD_PENDING_STS			mmPSOC_GLOBAL_CONF_COLD_RST_FLOPS_3
49  #define mmPID_CMD_REQ_REG			mmPSOC_PID_PID_CMD_0
50  #define mmPID_CMD_REQ_REG_HI			mmPSOC_PID_PID_CMD_1
51  #define mmPID_CMD_RSP_REG			mmPSOC_PID_PID_CMD_2
52  #define mmPID_CMD_RSP_REG_HI			mmPSOC_PID_PID_CMD_3
53  #define mmPID_CMD_TELEMETRY_REG_0		mmPSOC_PID_PID_CMD_4
54  #define mmPID_CMD_TELEMETRY_REG_0_HI		mmPSOC_PID_PID_CMD_5
55  #define mmPID_CMD_TELEMETRY_REG_1		mmPSOC_PID_PID_CMD_6
56  #define mmPID_CMD_TELEMETRY_REG_1_HI		mmPSOC_PID_PID_CMD_7
57  #define mmWD_GPIO_OUTSET_REG			mmPSOC_GPIO3_OUTENSET
58  #define mmWD_GPIO_DATAOUT_REG			mmPSOC_GPIO3_DATAOUT
59  #define mmSTM_PROFILER_SPE_REG			mmPSOC_STM_STMSPER
60  
61  /* Registers below are used to pass the boot_if data between ARM and ARC1 */
62  #define mmARM_MSG_BOOT_ERR_SET			mmCPU_IF_SPECIAL_GLBL_SPARE_0
63  #define mmARM_MSG_BOOT_ERR_CLR			mmCPU_IF_SPECIAL_GLBL_SPARE_1
64  #define mmARM_MSG_BOOT_DEV_STS_SET		mmCPU_IF_SPECIAL_GLBL_SPARE_2
65  #define mmARM_MSG_BOOT_DEV_STS_CLR		mmCPU_IF_SPECIAL_GLBL_SPARE_3
66  #define mmMGMT_MSG_BOOT_ERR			mmCPU_MSTR_IF_SPECIAL_GLBL_SPARE_0
67  #define mmMGMT_MSG_BOOT_DEV_STS			mmCPU_MSTR_IF_SPECIAL_GLBL_SPARE_1
68  
69  #endif /* GAUDI2_REG_MAP_H_ */
70