]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
a2777ecb | 2 | /* |
842ddf8e | 3 | * Copyright (c) 2016-2020 Toradex |
a2777ecb MZ |
4 | */ |
5 | ||
6 | #ifndef _TDX_CFG_BLOCK_H | |
7 | #define _TDX_CFG_BLOCK_H | |
8 | ||
9 | #include "tdx-common.h" | |
10 | ||
11 | struct toradex_hw { | |
12 | u16 ver_major; | |
13 | u16 ver_minor; | |
14 | u16 ver_assembly; | |
15 | u16 prodid; | |
16 | }; | |
17 | ||
18 | struct toradex_eth_addr { | |
19 | u32 oui:24; | |
20 | u32 nic:24; | |
21 | } __attribute__((__packed__)); | |
22 | ||
8b6dc5d3 FD |
23 | struct toradex_som { |
24 | const char *name; | |
25 | int is_enabled; | |
26 | }; | |
27 | ||
a2777ecb MZ |
28 | enum { |
29 | COLIBRI_PXA270_V1_312MHZ = 1, | |
30 | COLIBRI_PXA270_V1_520MHZ, | |
31 | COLIBRI_PXA320, | |
32 | COLIBRI_PXA300, | |
4adc9fc1 | 33 | COLIBRI_PXA310, /* 5 */ |
a2777ecb MZ |
34 | COLIBRI_PXA320_IT, |
35 | COLIBRI_PXA300_XT, | |
36 | COLIBRI_PXA270_312MHZ, | |
37 | COLIBRI_PXA270_520MHZ, | |
4adc9fc1 | 38 | COLIBRI_VF50, /* 10 */ |
ea1dc32f | 39 | COLIBRI_VF61, |
a2777ecb MZ |
40 | COLIBRI_VF61_IT, |
41 | COLIBRI_VF50_IT, | |
42 | COLIBRI_IMX6S, | |
4adc9fc1 | 43 | COLIBRI_IMX6DL, /* 15 */ |
a2777ecb MZ |
44 | COLIBRI_IMX6S_IT, |
45 | COLIBRI_IMX6DL_IT, | |
4adc9fc1 MZ |
46 | /* 18 */ |
47 | /* 19 */ | |
a2777ecb MZ |
48 | COLIBRI_T20_256MB = 20, |
49 | COLIBRI_T20_512MB, | |
50 | COLIBRI_T20_512MB_IT, | |
51 | COLIBRI_T30, | |
52 | COLIBRI_T20_256MB_IT, | |
4adc9fc1 | 53 | APALIS_T30_2GB, /* 25 */ |
a2777ecb MZ |
54 | APALIS_T30_1GB, |
55 | APALIS_IMX6Q, | |
56 | APALIS_IMX6Q_IT, | |
57 | APALIS_IMX6D, | |
4adc9fc1 | 58 | COLIBRI_T30_IT, /* 30 */ |
a2777ecb MZ |
59 | APALIS_T30_IT, |
60 | COLIBRI_IMX7S, | |
61 | COLIBRI_IMX7D, | |
62 | APALIS_TK1_2GB, | |
4adc9fc1 | 63 | APALIS_IMX6D_IT, /* 35 */ |
d826b875 | 64 | COLIBRI_IMX6ULL, |
4adc9fc1 MZ |
65 | APALIS_IMX8QM_WIFI_BT_IT, |
66 | COLIBRI_IMX8QXP_WIFI_BT_IT, | |
d826b875 SA |
67 | COLIBRI_IMX7D_EMMC, |
68 | COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */ | |
69 | COLIBRI_IMX7D_EPDC, | |
ea1dc32f | 70 | APALIS_TK1_4GB, |
08f80555 GS |
71 | COLIBRI_T20_512MB_IT_SETEK, |
72 | COLIBRI_IMX6ULL_IT, | |
73 | COLIBRI_IMX6ULL_WIFI_BT, /* 45 */ | |
6988a3af MZ |
74 | APALIS_IMX8QXP_WIFI_BT_IT, |
75 | APALIS_IMX8QM_IT, | |
76 | APALIS_IMX8QP_WIFI_BT, | |
77 | APALIS_IMX8QP, | |
78 | COLIBRI_IMX8QXP_IT, /* 50 */ | |
79 | COLIBRI_IMX8DX_WIFI_BT, | |
80 | COLIBRI_IMX8DX, | |
842ddf8e MZ |
81 | APALIS_IMX8QXP, |
82 | APALIS_IMX8DXP, | |
a5b5ad4d MZ |
83 | VERDIN_IMX8MMQ_WIFI_BT_IT, /* 55 */ |
84 | VERDIN_IMX8MNQ_WIFI_BT, | |
c0c3978c | 85 | VERDIN_IMX8MMDL, |
a5b5ad4d MZ |
86 | VERDIN_IMX8MPQ_WIFI_BT_IT, |
87 | VERDIN_IMX8MMQ_IT, | |
88 | VERDIN_IMX8MMDL_WIFI_BT_IT, /* 60 */ | |
89 | VERDIN_IMX8MPQ, | |
c9585087 MZ |
90 | COLIBRI_IMX6ULL_IT_EMMC, |
91 | VERDIN_IMX8MPQ_IT, | |
92 | VERDIN_IMX8MPQ_2GB_WIFI_BT_IT, | |
93 | VERDIN_IMX8MPQL_IT, /* 65 */ | |
94 | VERDIN_IMX8MPQ_8GB_WIFI_BT, | |
49410351 | 95 | APALIS_IMX8QM_8GB_WIFI_BT_IT, |
a2da29a4 | 96 | VERDIN_IMX8MMQ_WIFI_BT_IT_NO_CAN, |
a2777ecb MZ |
97 | }; |
98 | ||
26921f58 IO |
99 | enum { |
100 | DAHLIA = 155, | |
101 | VERDIN_DEVELOPMENT_BOARD = 156, | |
102 | }; | |
103 | ||
104 | enum { | |
105 | VERDIN_DSI_TO_HDMI_ADAPTER = 157, | |
106 | VERDIN_DSI_TO_LVDS_ADAPTER = 159, | |
107 | }; | |
108 | ||
8b6dc5d3 | 109 | extern const struct toradex_som toradex_modules[]; |
26921f58 | 110 | extern const char * const toradex_carrier_boards[]; |
a2777ecb MZ |
111 | extern bool valid_cfgblock; |
112 | extern struct toradex_hw tdx_hw_tag; | |
0c6b5588 | 113 | extern struct toradex_hw tdx_car_hw_tag; |
a2777ecb MZ |
114 | extern struct toradex_eth_addr tdx_eth_addr; |
115 | extern u32 tdx_serial; | |
0c6b5588 | 116 | extern u32 tdx_car_serial; |
a2777ecb MZ |
117 | |
118 | int read_tdx_cfg_block(void); | |
0c6b5588 | 119 | int read_tdx_cfg_block_carrier(void); |
a2777ecb | 120 | |
db4ab6d4 IO |
121 | int try_migrate_tdx_cfg_block_carrier(void); |
122 | ||
1cf4e79f PS |
123 | void get_mac_from_serial(u32 tdx_serial, struct toradex_eth_addr *eth_addr); |
124 | ||
a2777ecb | 125 | #endif /* _TDX_CFG_BLOCK_H */ |