1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #ifndef __EVERGREEN_SMC_H__
24 #define __EVERGREEN_SMC_H__
25
26 #include "rv770_smc.h"
27
28 #pragma pack(push, 1)
29
30 #define SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE 16
31
32 struct SMC_Evergreen_MCRegisterAddress
33 {
34 uint16_t s0;
35 uint16_t s1;
36 };
37
38 typedef struct SMC_Evergreen_MCRegisterAddress SMC_Evergreen_MCRegisterAddress;
39
40
41 struct SMC_Evergreen_MCRegisterSet
42 {
43 uint32_t value[SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE];
44 };
45
46 typedef struct SMC_Evergreen_MCRegisterSet SMC_Evergreen_MCRegisterSet;
47
48 struct SMC_Evergreen_MCRegisters
49 {
50 uint8_t last;
51 uint8_t reserved[3];
52 SMC_Evergreen_MCRegisterAddress address[SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE];
53 SMC_Evergreen_MCRegisterSet data[5];
54 };
55
56 typedef struct SMC_Evergreen_MCRegisters SMC_Evergreen_MCRegisters;
57
58 #define EVERGREEN_SMC_FIRMWARE_HEADER_LOCATION 0x100
59
60 #define EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 0x8
61 #define EVERGREEN_SMC_FIRMWARE_HEADER_stateTable 0xC
62 #define EVERGREEN_SMC_FIRMWARE_HEADER_mcRegisterTable 0x20
63
64
65 #pragma pack(pop)
66
67 #endif