0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef __EVERGREEN_SMC_H__
0024 #define __EVERGREEN_SMC_H__
0025
0026 #include "rv770_smc.h"
0027
0028 #pragma pack(push, 1)
0029
0030 #define SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE 16
0031
0032 struct SMC_Evergreen_MCRegisterAddress
0033 {
0034 uint16_t s0;
0035 uint16_t s1;
0036 };
0037
0038 typedef struct SMC_Evergreen_MCRegisterAddress SMC_Evergreen_MCRegisterAddress;
0039
0040
0041 struct SMC_Evergreen_MCRegisterSet
0042 {
0043 uint32_t value[SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE];
0044 };
0045
0046 typedef struct SMC_Evergreen_MCRegisterSet SMC_Evergreen_MCRegisterSet;
0047
0048 struct SMC_Evergreen_MCRegisters
0049 {
0050 uint8_t last;
0051 uint8_t reserved[3];
0052 SMC_Evergreen_MCRegisterAddress address[SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE];
0053 SMC_Evergreen_MCRegisterSet data[5];
0054 };
0055
0056 typedef struct SMC_Evergreen_MCRegisters SMC_Evergreen_MCRegisters;
0057
0058 #define EVERGREEN_SMC_FIRMWARE_HEADER_LOCATION 0x100
0059
0060 #define EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 0x8
0061 #define EVERGREEN_SMC_FIRMWARE_HEADER_stateTable 0xC
0062 #define EVERGREEN_SMC_FIRMWARE_HEADER_mcRegisterTable 0x20
0063
0064
0065 #pragma pack(pop)
0066
0067 #endif