]>
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 | ||
23 | enum { | |
24 | COLIBRI_PXA270_V1_312MHZ = 1, | |
25 | COLIBRI_PXA270_V1_520MHZ, | |
26 | COLIBRI_PXA320, | |
27 | COLIBRI_PXA300, | |
4adc9fc1 | 28 | COLIBRI_PXA310, /* 5 */ |
a2777ecb MZ |
29 | COLIBRI_PXA320_IT, |
30 | COLIBRI_PXA300_XT, | |
31 | COLIBRI_PXA270_312MHZ, | |
32 | COLIBRI_PXA270_520MHZ, | |
4adc9fc1 MZ |
33 | COLIBRI_VF50, /* 10 */ |
34 | COLIBRI_VF61, /* not currently on sale */ | |
a2777ecb MZ |
35 | COLIBRI_VF61_IT, |
36 | COLIBRI_VF50_IT, | |
37 | COLIBRI_IMX6S, | |
4adc9fc1 | 38 | COLIBRI_IMX6DL, /* 15 */ |
a2777ecb MZ |
39 | COLIBRI_IMX6S_IT, |
40 | COLIBRI_IMX6DL_IT, | |
4adc9fc1 MZ |
41 | /* 18 */ |
42 | /* 19 */ | |
a2777ecb MZ |
43 | COLIBRI_T20_256MB = 20, |
44 | COLIBRI_T20_512MB, | |
45 | COLIBRI_T20_512MB_IT, | |
46 | COLIBRI_T30, | |
47 | COLIBRI_T20_256MB_IT, | |
4adc9fc1 | 48 | APALIS_T30_2GB, /* 25 */ |
a2777ecb MZ |
49 | APALIS_T30_1GB, |
50 | APALIS_IMX6Q, | |
51 | APALIS_IMX6Q_IT, | |
52 | APALIS_IMX6D, | |
4adc9fc1 | 53 | COLIBRI_T30_IT, /* 30 */ |
a2777ecb MZ |
54 | APALIS_T30_IT, |
55 | COLIBRI_IMX7S, | |
56 | COLIBRI_IMX7D, | |
57 | APALIS_TK1_2GB, | |
4adc9fc1 | 58 | APALIS_IMX6D_IT, /* 35 */ |
d826b875 | 59 | COLIBRI_IMX6ULL, |
4adc9fc1 MZ |
60 | APALIS_IMX8QM_WIFI_BT_IT, |
61 | COLIBRI_IMX8QXP_WIFI_BT_IT, | |
d826b875 SA |
62 | COLIBRI_IMX7D_EMMC, |
63 | COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */ | |
64 | COLIBRI_IMX7D_EPDC, | |
4adc9fc1 | 65 | APALIS_TK1_4GB, /* not currently on sale */ |
08f80555 GS |
66 | COLIBRI_T20_512MB_IT_SETEK, |
67 | COLIBRI_IMX6ULL_IT, | |
68 | COLIBRI_IMX6ULL_WIFI_BT, /* 45 */ | |
6988a3af MZ |
69 | APALIS_IMX8QXP_WIFI_BT_IT, |
70 | APALIS_IMX8QM_IT, | |
71 | APALIS_IMX8QP_WIFI_BT, | |
72 | APALIS_IMX8QP, | |
73 | COLIBRI_IMX8QXP_IT, /* 50 */ | |
74 | COLIBRI_IMX8DX_WIFI_BT, | |
75 | COLIBRI_IMX8DX, | |
842ddf8e MZ |
76 | APALIS_IMX8QXP, |
77 | APALIS_IMX8DXP, | |
a5b5ad4d MZ |
78 | VERDIN_IMX8MMQ_WIFI_BT_IT, /* 55 */ |
79 | VERDIN_IMX8MNQ_WIFI_BT, | |
c0c3978c | 80 | VERDIN_IMX8MMDL, |
a5b5ad4d MZ |
81 | VERDIN_IMX8MPQ_WIFI_BT_IT, |
82 | VERDIN_IMX8MMQ_IT, | |
83 | VERDIN_IMX8MMDL_WIFI_BT_IT, /* 60 */ | |
84 | VERDIN_IMX8MPQ, | |
c9585087 MZ |
85 | COLIBRI_IMX6ULL_IT_EMMC, |
86 | VERDIN_IMX8MPQ_IT, | |
87 | VERDIN_IMX8MPQ_2GB_WIFI_BT_IT, | |
88 | VERDIN_IMX8MPQL_IT, /* 65 */ | |
89 | VERDIN_IMX8MPQ_8GB_WIFI_BT, | |
49410351 | 90 | APALIS_IMX8QM_8GB_WIFI_BT_IT, |
a2da29a4 | 91 | VERDIN_IMX8MMQ_WIFI_BT_IT_NO_CAN, |
a2777ecb MZ |
92 | }; |
93 | ||
26921f58 IO |
94 | enum { |
95 | DAHLIA = 155, | |
96 | VERDIN_DEVELOPMENT_BOARD = 156, | |
97 | }; | |
98 | ||
99 | enum { | |
100 | VERDIN_DSI_TO_HDMI_ADAPTER = 157, | |
101 | VERDIN_DSI_TO_LVDS_ADAPTER = 159, | |
102 | }; | |
103 | ||
a2777ecb | 104 | extern const char * const toradex_modules[]; |
26921f58 | 105 | extern const char * const toradex_carrier_boards[]; |
a2777ecb MZ |
106 | extern bool valid_cfgblock; |
107 | extern struct toradex_hw tdx_hw_tag; | |
0c6b5588 | 108 | extern struct toradex_hw tdx_car_hw_tag; |
a2777ecb MZ |
109 | extern struct toradex_eth_addr tdx_eth_addr; |
110 | extern u32 tdx_serial; | |
0c6b5588 | 111 | extern u32 tdx_car_serial; |
a2777ecb MZ |
112 | |
113 | int read_tdx_cfg_block(void); | |
0c6b5588 | 114 | int read_tdx_cfg_block_carrier(void); |
a2777ecb | 115 | |
db4ab6d4 IO |
116 | int try_migrate_tdx_cfg_block_carrier(void); |
117 | ||
1cf4e79f PS |
118 | void get_mac_from_serial(u32 tdx_serial, struct toradex_eth_addr *eth_addr); |
119 | ||
a2777ecb | 120 | #endif /* _TDX_CFG_BLOCK_H */ |