arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / mips / include / asm / sn / gda.h
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Derived from IRIX <sys/SN/gda.h>.
7  *
8  * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
9  *
10  * gda.h -- Contains the data structure for the global data area,
11  *      The GDA contains information communicated between the
12  *      PROM, SYMMON, and the kernel.
13  */
14 #ifndef _ASM_SN_GDA_H
15 #define _ASM_SN_GDA_H
16
17 #include <asm/sn/addrs.h>
18
19 /*
20  * GDA Version History
21  *
22  * Version #    | Change
23  * -------------+-------------------------------------------------------
24  *      1       | Initial SN0 version
25  *      2       | Prom sets g_partid field to the partition number. 0 IS
26  *              | a valid partition #.
27  */
28
29 #define GDA_VERSION     2       /* Current GDA version # */
30
31 #define G_MAGICOFF      0
32 #define G_VERSIONOFF    4
33 #define G_PROMOPOFF     6
34 #define G_MASTEROFF     8
35 #define G_VDSOFF        12
36 #define G_HKDNORMOFF    16
37 #define G_HKDUTLBOFF    24
38 #define G_HKDXUTLBOFF   32
39 #define G_PARTIDOFF     40
40 #define G_TABLEOFF      128
41
42 #ifndef __ASSEMBLY__
43
44 typedef struct gda {
45         u32     g_magic;        /* GDA magic number */
46         u16     g_version;      /* Version of this structure */
47         u16     g_masterid;     /* The NASID:CPUNUM of the master cpu */
48         u32     g_promop;       /* Passes requests from the kernel to prom */
49         u32     g_vds;          /* Store the virtual dipswitches here */
50         void    **g_hooked_norm;/* ptr to pda loc for norm hndlr */
51         void    **g_hooked_utlb;/* ptr to pda loc for utlb hndlr */
52         void    **g_hooked_xtlb;/* ptr to pda loc for xtlb hndlr */
53         int     g_partid;       /* partition id */
54         int     g_symmax;       /* Max symbols in name table. */
55         void    *g_dbstab;      /* Address of idbg symbol table */
56         char    *g_nametab;     /* Address of idbg name table */
57         void    *g_ktext_repmask;
58                                 /* Pointer to a mask of nodes with copies
59                                  * of the kernel. */
60         char    g_padding[56];  /* pad out to 128 bytes */
61         nasid_t g_nasidtable[MAX_NUMNODES]; /* NASID of each node */
62 } gda_t;
63
64 #define GDA ((gda_t*) GDA_ADDR(get_nasid()))
65
66 #endif /* !__ASSEMBLY__ */
67 /*
68  * Define:      PART_GDA_VERSION
69  * Purpose:     Define the minimum version of the GDA required, lower
70  *              revisions assume GDA is NOT set up, and read partition
71  *              information from the board info.
72  */
73 #define PART_GDA_VERSION        2
74
75 /*
76  * The following requests can be sent to the PROM during startup.
77  */
78
79 #define PROMOP_MAGIC            0x0ead0000
80 #define PROMOP_MAGIC_MASK       0x0fff0000
81
82 #define PROMOP_BIST_SHIFT       11
83 #define PROMOP_BIST_MASK        (0x3 << 11)
84
85 #define PROMOP_REG              PI_ERR_STACK_ADDR_A
86
87 #define PROMOP_INVALID          (PROMOP_MAGIC | 0x00)
88 #define PROMOP_HALT             (PROMOP_MAGIC | 0x10)
89 #define PROMOP_POWERDOWN        (PROMOP_MAGIC | 0x20)
90 #define PROMOP_RESTART          (PROMOP_MAGIC | 0x30)
91 #define PROMOP_REBOOT           (PROMOP_MAGIC | 0x40)
92 #define PROMOP_IMODE            (PROMOP_MAGIC | 0x50)
93
94 #define PROMOP_CMD_MASK         0x00f0
95 #define PROMOP_OPTIONS_MASK     0xfff0
96
97 #define PROMOP_SKIP_DIAGS       0x0100          /* don't bother running diags */
98 #define PROMOP_SKIP_MEMINIT     0x0200          /* don't bother initing memory */
99 #define PROMOP_SKIP_DEVINIT     0x0400          /* don't bother initing devices */
100 #define PROMOP_BIST1            0x0800          /* keep track of which BIST ran */
101 #define PROMOP_BIST2            0x1000          /* keep track of which BIST ran */
102
103 #endif /* _ASM_SN_GDA_H */