hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*++
 
  Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
                                                                                   
  SPDX-License-Identifier: BSD-2-Clause-Patent
 
                                                                                   
 
Module Name:
 
  CK505ClockPlatformInfo.h
 
Abstract:
 
  Protocol to communicate product clock routing information.
 
GUID Info:
 {3C485EA4-449A-46ce-BB08-2A336EA96B4E}
 0x3c485ea4, 0x449a, 0x46ce, 0xbb, 0x8, 0x2a, 0x33, 0x6e, 0xa9, 0x6b, 0x4e);
 
**/
 
#ifndef _CLOCK_PLATFORM_INFO_H_
#define _CLOCK_PLATFORM_INFO_H_
 
 
#define EFI_CK505_CLOCK_PLATFORM_INFO_GUID  \
  {0x3c485ea4, 0x449a, 0x46ce, 0xbb, 0x8, 0x2a, 0x33, 0x6e, 0xa9, 0x6b, 0x4e}
 
//
// Structure to hold register modifications
//
typedef enum {
  None           = 0x00000000,
  nICS9LP505_1   = 0x00000001,
  nICS9LP505_2   = 0x00000002,
  nIDTCV163      = 0x00000004,
  nIDTCV174      = 0x00000008,
  nSLG505YC56    = 0x00000010,
  nSLG505YC64    = 0x00000020,
  nCY28505       = 0x00000040,
  nCY28505_2     = 0x00000080,
  nCY28505LF     = 0x00000100,
  nPI6C505_OLD   = 0x00000200,
  nPI6C505_RevD  = 0x00000400,
  nGENERIC_505   = 0x00000800,
  nSLG505YC264   = 0x00001000,
  nIDTCV183      = 0x00002000,
  nSLG505YC256   = 0x00004000,
  nIDTCV184      = 0x00008000,
  nIDTCV190      = 0x00010000,
  All            = 0xFFFFFFFF
} EFI_CLOCKS_SUPPORTED;
 
typedef enum {
  Disabled,
  Enabled,
  EnabledWithoutSwitch,
  EnabledWithSwitch
} EFI_SIGNAL_STATE;
 
typedef enum {
  SrcClk11,
  SrcClk10,
  SrcClk9,
  SrcClk8,
  SrcClk7,
  SrcClk6,
  SrcClk5,
  SrcClk4,
  SrcClk3,
  SrcClk2,
  SrcClk1,
  SrcClk0,
  CpuClk1,
  CpuClk0,
  Ref0,
  Dot96,
  Usb48,
  PciClkF5,
  PciClk4,
  PciClk3,
  PciClk2,
  PciClk1,
  PciClk0,
  SaveClockConfiguration,
  MePresent,
  Cr_A,
  Cr_B,
  Cr_C,
  Cr_D,
  Cr_E,
  Cr_F,
  Cr_G,
  Cr_H,
  Clk_None // Dummy entry for dynamic detection
} EFI_CLOCK_SIGNAL_NAME;
 
typedef struct {
  EFI_CLOCK_SIGNAL_NAME     Signal;
  EFI_SIGNAL_STATE          State;
  EFI_CLOCKS_SUPPORTED      Supported;
} EFI_STATIC_SIGNALS;
 
typedef struct {
  BOOLEAN               BehindBridge;
  UINT16                BridgeBus;
  UINT16                BridgeDev;
  UINT16                BridgeFunction;
  UINT16                TargetDevice;
  EFI_CLOCK_SIGNAL_NAME Signal;
} EFI_DYNAMIC_SIGNALS;
 
 
typedef struct {
  EFI_STATIC_SIGNALS      *StaticClockTable;
  UINTN                   StaticClockTableCount;
  EFI_STATIC_SIGNALS      *SxClockTable;
  UINTN                   SxClockTableCount;
  EFI_STATIC_SIGNALS      *DynamicDisabledClocksTable;
  UINTN              DynamicDisabledClocksTableCount;
} EFI_CLOCK_PLATFORM_INFO;
 
extern EFI_GUID gEfiCk505ClockPlatformInfoGuid;
 
#endif