xref: /dragonfly/sys/dev/drm/radeon/radeon_ucode.h (revision 57e252bf)
1*57e252bfSMichael Neumann /*
2*57e252bfSMichael Neumann  * Copyright 2012 Advanced Micro Devices, Inc.
3*57e252bfSMichael Neumann  *
4*57e252bfSMichael Neumann  * Permission is hereby granted, free of charge, to any person obtaining a
5*57e252bfSMichael Neumann  * copy of this software and associated documentation files (the "Software"),
6*57e252bfSMichael Neumann  * to deal in the Software without restriction, including without limitation
7*57e252bfSMichael Neumann  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*57e252bfSMichael Neumann  * and/or sell copies of the Software, and to permit persons to whom the
9*57e252bfSMichael Neumann  * Software is furnished to do so, subject to the following conditions:
10*57e252bfSMichael Neumann  *
11*57e252bfSMichael Neumann  * The above copyright notice and this permission notice shall be included in
12*57e252bfSMichael Neumann  * all copies or substantial portions of the Software.
13*57e252bfSMichael Neumann  *
14*57e252bfSMichael Neumann  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*57e252bfSMichael Neumann  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*57e252bfSMichael Neumann  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17*57e252bfSMichael Neumann  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*57e252bfSMichael Neumann  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*57e252bfSMichael Neumann  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*57e252bfSMichael Neumann  * OTHER DEALINGS IN THE SOFTWARE.
21*57e252bfSMichael Neumann  *
22*57e252bfSMichael Neumann  */
23*57e252bfSMichael Neumann #ifndef __RADEON_UCODE_H__
24*57e252bfSMichael Neumann #define __RADEON_UCODE_H__
25*57e252bfSMichael Neumann 
26*57e252bfSMichael Neumann /* CP */
27*57e252bfSMichael Neumann #define R600_PFP_UCODE_SIZE          576
28*57e252bfSMichael Neumann #define R600_PM4_UCODE_SIZE          1792
29*57e252bfSMichael Neumann #define R700_PFP_UCODE_SIZE          848
30*57e252bfSMichael Neumann #define R700_PM4_UCODE_SIZE          1360
31*57e252bfSMichael Neumann #define EVERGREEN_PFP_UCODE_SIZE     1120
32*57e252bfSMichael Neumann #define EVERGREEN_PM4_UCODE_SIZE     1376
33*57e252bfSMichael Neumann #define CAYMAN_PFP_UCODE_SIZE        2176
34*57e252bfSMichael Neumann #define CAYMAN_PM4_UCODE_SIZE        2176
35*57e252bfSMichael Neumann #define SI_PFP_UCODE_SIZE            2144
36*57e252bfSMichael Neumann #define SI_PM4_UCODE_SIZE            2144
37*57e252bfSMichael Neumann #define SI_CE_UCODE_SIZE             2144
38*57e252bfSMichael Neumann 
39*57e252bfSMichael Neumann /* RLC */
40*57e252bfSMichael Neumann #define R600_RLC_UCODE_SIZE          768
41*57e252bfSMichael Neumann #define R700_RLC_UCODE_SIZE          1024
42*57e252bfSMichael Neumann #define EVERGREEN_RLC_UCODE_SIZE     768
43*57e252bfSMichael Neumann #define CAYMAN_RLC_UCODE_SIZE        1024
44*57e252bfSMichael Neumann #define ARUBA_RLC_UCODE_SIZE         1536
45*57e252bfSMichael Neumann #define SI_RLC_UCODE_SIZE            2048
46*57e252bfSMichael Neumann 
47*57e252bfSMichael Neumann /* MC */
48*57e252bfSMichael Neumann #define BTC_MC_UCODE_SIZE            6024
49*57e252bfSMichael Neumann #define CAYMAN_MC_UCODE_SIZE         6037
50*57e252bfSMichael Neumann #define SI_MC_UCODE_SIZE             7769
51*57e252bfSMichael Neumann #define OLAND_MC_UCODE_SIZE          7863
52*57e252bfSMichael Neumann 
53*57e252bfSMichael Neumann /* SMC */
54*57e252bfSMichael Neumann #define RV770_SMC_UCODE_START        0x0100
55*57e252bfSMichael Neumann #define RV770_SMC_UCODE_SIZE         0x410d
56*57e252bfSMichael Neumann #define RV770_SMC_INT_VECTOR_START   0xffc0
57*57e252bfSMichael Neumann #define RV770_SMC_INT_VECTOR_SIZE    0x0040
58*57e252bfSMichael Neumann 
59*57e252bfSMichael Neumann #define RV730_SMC_UCODE_START        0x0100
60*57e252bfSMichael Neumann #define RV730_SMC_UCODE_SIZE         0x412c
61*57e252bfSMichael Neumann #define RV730_SMC_INT_VECTOR_START   0xffc0
62*57e252bfSMichael Neumann #define RV730_SMC_INT_VECTOR_SIZE    0x0040
63*57e252bfSMichael Neumann 
64*57e252bfSMichael Neumann #define RV710_SMC_UCODE_START        0x0100
65*57e252bfSMichael Neumann #define RV710_SMC_UCODE_SIZE         0x3f1f
66*57e252bfSMichael Neumann #define RV710_SMC_INT_VECTOR_START   0xffc0
67*57e252bfSMichael Neumann #define RV710_SMC_INT_VECTOR_SIZE    0x0040
68*57e252bfSMichael Neumann 
69*57e252bfSMichael Neumann #define RV740_SMC_UCODE_START        0x0100
70*57e252bfSMichael Neumann #define RV740_SMC_UCODE_SIZE         0x41c5
71*57e252bfSMichael Neumann #define RV740_SMC_INT_VECTOR_START   0xffc0
72*57e252bfSMichael Neumann #define RV740_SMC_INT_VECTOR_SIZE    0x0040
73*57e252bfSMichael Neumann 
74*57e252bfSMichael Neumann #define CEDAR_SMC_UCODE_START        0x0100
75*57e252bfSMichael Neumann #define CEDAR_SMC_UCODE_SIZE         0x5d50
76*57e252bfSMichael Neumann #define CEDAR_SMC_INT_VECTOR_START   0xffc0
77*57e252bfSMichael Neumann #define CEDAR_SMC_INT_VECTOR_SIZE    0x0040
78*57e252bfSMichael Neumann 
79*57e252bfSMichael Neumann #define REDWOOD_SMC_UCODE_START      0x0100
80*57e252bfSMichael Neumann #define REDWOOD_SMC_UCODE_SIZE       0x5f0a
81*57e252bfSMichael Neumann #define REDWOOD_SMC_INT_VECTOR_START 0xffc0
82*57e252bfSMichael Neumann #define REDWOOD_SMC_INT_VECTOR_SIZE  0x0040
83*57e252bfSMichael Neumann 
84*57e252bfSMichael Neumann #define JUNIPER_SMC_UCODE_START      0x0100
85*57e252bfSMichael Neumann #define JUNIPER_SMC_UCODE_SIZE       0x5f1f
86*57e252bfSMichael Neumann #define JUNIPER_SMC_INT_VECTOR_START 0xffc0
87*57e252bfSMichael Neumann #define JUNIPER_SMC_INT_VECTOR_SIZE  0x0040
88*57e252bfSMichael Neumann 
89*57e252bfSMichael Neumann #define CYPRESS_SMC_UCODE_START      0x0100
90*57e252bfSMichael Neumann #define CYPRESS_SMC_UCODE_SIZE       0x61f7
91*57e252bfSMichael Neumann #define CYPRESS_SMC_INT_VECTOR_START 0xffc0
92*57e252bfSMichael Neumann #define CYPRESS_SMC_INT_VECTOR_SIZE  0x0040
93*57e252bfSMichael Neumann 
94*57e252bfSMichael Neumann #define BARTS_SMC_UCODE_START        0x0100
95*57e252bfSMichael Neumann #define BARTS_SMC_UCODE_SIZE         0x6107
96*57e252bfSMichael Neumann #define BARTS_SMC_INT_VECTOR_START   0xffc0
97*57e252bfSMichael Neumann #define BARTS_SMC_INT_VECTOR_SIZE    0x0040
98*57e252bfSMichael Neumann 
99*57e252bfSMichael Neumann #define TURKS_SMC_UCODE_START        0x0100
100*57e252bfSMichael Neumann #define TURKS_SMC_UCODE_SIZE         0x605b
101*57e252bfSMichael Neumann #define TURKS_SMC_INT_VECTOR_START   0xffc0
102*57e252bfSMichael Neumann #define TURKS_SMC_INT_VECTOR_SIZE    0x0040
103*57e252bfSMichael Neumann 
104*57e252bfSMichael Neumann #define CAICOS_SMC_UCODE_START       0x0100
105*57e252bfSMichael Neumann #define CAICOS_SMC_UCODE_SIZE        0x5fbd
106*57e252bfSMichael Neumann #define CAICOS_SMC_INT_VECTOR_START  0xffc0
107*57e252bfSMichael Neumann #define CAICOS_SMC_INT_VECTOR_SIZE   0x0040
108*57e252bfSMichael Neumann 
109*57e252bfSMichael Neumann #define CAYMAN_SMC_UCODE_START       0x0100
110*57e252bfSMichael Neumann #define CAYMAN_SMC_UCODE_SIZE        0x79ec
111*57e252bfSMichael Neumann #define CAYMAN_SMC_INT_VECTOR_START  0xffc0
112*57e252bfSMichael Neumann #define CAYMAN_SMC_INT_VECTOR_SIZE   0x0040
113*57e252bfSMichael Neumann 
114*57e252bfSMichael Neumann #define TAHITI_SMC_UCODE_START       0x10000
115*57e252bfSMichael Neumann #define TAHITI_SMC_UCODE_SIZE        0xf458
116*57e252bfSMichael Neumann 
117*57e252bfSMichael Neumann #define PITCAIRN_SMC_UCODE_START     0x10000
118*57e252bfSMichael Neumann #define PITCAIRN_SMC_UCODE_SIZE      0xe9f4
119*57e252bfSMichael Neumann 
120*57e252bfSMichael Neumann #define VERDE_SMC_UCODE_START        0x10000
121*57e252bfSMichael Neumann #define VERDE_SMC_UCODE_SIZE         0xebe4
122*57e252bfSMichael Neumann 
123*57e252bfSMichael Neumann #define OLAND_SMC_UCODE_START        0x10000
124*57e252bfSMichael Neumann #define OLAND_SMC_UCODE_SIZE         0xe7b4
125*57e252bfSMichael Neumann 
126*57e252bfSMichael Neumann #define HAINAN_SMC_UCODE_START       0x10000
127*57e252bfSMichael Neumann #define HAINAN_SMC_UCODE_SIZE        0xe67C
128*57e252bfSMichael Neumann 
129*57e252bfSMichael Neumann #endif
130