1
2
3
4
5
6#ifndef __HIGHSPEED_ENV_SPEC_H
7#define __HIGHSPEED_ENV_SPEC_H
8
9#include "../../../drivers/ddr/marvell/axp/ddr3_hw_training.h"
10
11typedef enum {
12 SERDES_UNIT_UNCONNECTED = 0x0,
13 SERDES_UNIT_PEX = 0x1,
14 SERDES_UNIT_SATA = 0x2,
15 SERDES_UNIT_SGMII0 = 0x3,
16 SERDES_UNIT_SGMII1 = 0x4,
17 SERDES_UNIT_SGMII2 = 0x5,
18 SERDES_UNIT_SGMII3 = 0x6,
19 SERDES_UNIT_QSGMII = 0x7,
20 SERDES_UNIT_SETM = 0x8,
21 SERDES_LAST_UNIT
22} MV_BIN_SERDES_UNIT_INDX;
23
24
25typedef enum {
26 PEX_BUS_DISABLED = 0,
27 PEX_BUS_MODE_X1 = 1,
28 PEX_BUS_MODE_X4 = 2,
29 PEX_BUS_MODE_X8 = 3
30} MV_PEX_UNIT_CFG;
31
32typedef enum pex_type {
33 MV_PEX_ROOT_COMPLEX,
34 MV_PEX_END_POINT
35} MV_PEX_TYPE;
36
37typedef struct serdes_change_m_phy {
38 MV_BIN_SERDES_UNIT_INDX type;
39 u32 reg_low_speed;
40 u32 val_low_speed;
41 u32 reg_hi_speed;
42 u32 val_hi_speed;
43} MV_SERDES_CHANGE_M_PHY;
44
45
46
47
48typedef struct board_serdes_conf {
49 MV_PEX_TYPE pex_type;
50 u32 line0_7;
51 u32 line8_15;
52 MV_PEX_UNIT_CFG pex_mode[4];
53
54
55
56
57
58
59
60
61 u32 bus_speed;
62
63 MV_SERDES_CHANGE_M_PHY *serdes_m_phy_change;
64} MV_BIN_SERDES_CFG;
65
66
67#define BIN_SERDES_CFG { \
68 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
69 {0, 1, -1 , -1, -1, -1, -1, -1, 2}, \
70 {0, 1, -1 , 2, -1, -1, -1, -1, 3}, \
71 {0, 1, -1 , -1, 2, -1, -1, 3, -1}, \
72 {0, 1, 2 , -1, -1, 3, -1, -1, 4}, \
73 {0, 1, 2 , -1, 3, -1, -1, 4, -1}, \
74 {0, 1, 2 , 4, -1, 3, -1, -1, -1}, \
75 {0, 1, -1 , 2, -1, -1, 3, -1, 4}, \
76 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
77 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
78 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
79 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
80 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
81 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
82 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
83 {0, 1, -1 , -1, -1, -1, -1, -1, -1}, \
84}
85
86#endif
87