hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
/** @file
  Header file with all common HSIO information
 
  Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _PCH_HSIO_H_
#define _PCH_HSIO_H_
 
#define PCH_LANE_OWN_COMMON                      0x10
#define PCH_LANE_BDCAST                          0x11
#define PCH_HSIO_LANE_GROUP_NO                   0x09
#define PCH_HSIO_LANE_GROUP_COMMON_LANE          0x00
#define PCH_HSIO_LANE_GROUP_PCIE                 0x01
#define PCH_HSIO_LANE_GROUP_DMI                  0x02
#define PCH_HSIO_LANE_GROUP_GBE                  0x03
#define PCH_HSIO_LANE_GROUP_USB3                 0x04
#define PCH_HSIO_LANE_GROUP_SATA                 0x05
#define PCH_HSIO_LANE_GROUP_SSIC                 0x06
 
 
/**
  PCH HSIO ChipsetInit Version Information
**/
typedef struct {
  UINT16 BaseCrc;
  UINT16 SusCrc;
  UINT16 OemCrc;
  UINT8  Version;
  UINT8  Product;
  UINT8  MetalLayer : 4;
  UINT8  BaseLayer : 4;
  UINT8  OemVersion;
  UINT16 DebugMode : 1;
  UINT16 OemCrcValid : 1;
  UINT16 SusCrcValid : 1;
  UINT16 BaseCrcValid : 1;
  UINT16 Reserved : 12;
} PCH_HSIO_VER_INFO;
 
#define PMC_DATA_CMD_SIZE   ((12/sizeof(UINT16))-1)
#define PMC_DATA_DELAY_CMD_SIZE ((4/sizeof(UINT16))-1)
 
#define RECORD_OFFSET(X, Y)  ((X << 4) | Y)
/**
  PCH HSIO ChipsetInit Command Field
**/
typedef struct {
  UINT8 Command : 3;
  UINT8 Size : 5;
  UINT8 Pid;
  UINT8 OpCode; //PrivateControlWrite
  UINT8 Bar; //0
  UINT8 Fbe; //First Byte Enable  : 0x0F
  UINT8 Fid; //0
  UINT16 Offset;
  UINT32 Value;
} PCH_HSIO_CMD_FIELD;
 
/**
PCH HSIO Delay XRAM Data
**/
typedef struct {
  UINT8 Command : 3;
  UINT8 Size : 5;
  UINT8 DelayPeriod; //(00h = 1us, 01h = 10us, 02h = 100us, ..., 07h = 10s; others reserved)
  UINT8 DelayCount; //(0 - 255); total delay = Delay period * Delay count
  UINT8 Padding;
} PCH_HSIO_DELAY_CMD_FIELD;
 
typedef enum {
  Delay1us = 0x0,
  Delay10us,
  Delay100us,
  Delay1ms,
  Delay10ms,
  Delay100ms,
  Delay1s,
  Delay10s
} PCH_HSIO_DELAY;
 
/**
PCH PCIE PLL SSC Data
**/
#define MAX_PCIE_PLL_SSC_PERCENT  20
 
#include <Private/CnlPchLpHsioDx.h>
 
#endif //_PCH_HSIO_H_