summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
blob: 7702364b65f1ad97b6bfba4cf0909e6235cbcbc9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2023 Intel Corporation
 */

#ifndef _XE_GSC_REGS_H_
#define _XE_GSC_REGS_H_

#include <linux/compiler.h>
#include <linux/types.h>

#include "regs/xe_reg_defs.h"

/* Definitions of GSC H/W registers, bits, etc */

#define MTL_GSC_HECI1_BASE	0x00116000
#define MTL_GSC_HECI2_BASE	0x00117000

#define HECI_H_CSR(base)	XE_REG((base) + 0x4)
#define   HECI_H_CSR_IE		REG_BIT(0)
#define   HECI_H_CSR_IS		REG_BIT(1)
#define   HECI_H_CSR_IG		REG_BIT(2)
#define   HECI_H_CSR_RDY	REG_BIT(3)
#define   HECI_H_CSR_RST	REG_BIT(4)

/*
 * The FWSTS register values are FW defined and can be different between
 * HECI1 and HECI2
 */
#define HECI_FWSTS1(base)				XE_REG((base) + 0xc40)
#define   HECI1_FWSTS1_CURRENT_STATE			REG_GENMASK(3, 0)
#define   HECI1_FWSTS1_CURRENT_STATE_RESET		0
#define   HECI1_FWSTS1_PROXY_STATE_NORMAL		5
#define   HECI1_FWSTS1_INIT_COMPLETE			REG_BIT(9)
#define HECI_FWSTS2(base)				XE_REG((base) + 0xc48)
#define HECI_FWSTS3(base)				XE_REG((base) + 0xc60)
#define HECI_FWSTS4(base)				XE_REG((base) + 0xc64)
#define HECI_FWSTS5(base)				XE_REG((base) + 0xc68)
#define   HECI1_FWSTS5_HUC_AUTH_DONE			REG_BIT(19)
#define HECI_FWSTS6(base)				XE_REG((base) + 0xc6c)

#define HECI_H_GS1(base)	XE_REG((base) + 0xc4c)
#define   HECI_H_GS1_ER_PREP	REG_BIT(0)

#define GSCI_TIMER_STATUS				XE_REG(0x11ca28)
#define   GSCI_TIMER_STATUS_VALUE			REG_GENMASK(1, 0)
#define   GSCI_TIMER_STATUS_RESET_IN_PROGRESS		0
#define   GSCI_TIMER_STATUS_TIMER_EXPIRED		1
#define   GSCI_TIMER_STATUS_RESET_COMPLETE		2
#define   GSCI_TIMER_STATUS_OUT_OF_RESET		3

#endif