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
  | /* 
 |   * Copyright (c) 2016 Toradex, Inc. 
 |   * 
 |   * SPDX-License-Identifier:    GPL-2.0+ 
 |   */ 
 |    
 |  #ifndef _TDX_CFG_BLOCK_H 
 |  #define _TDX_CFG_BLOCK_H 
 |    
 |  #include "tdx-common.h" 
 |    
 |  struct toradex_hw { 
 |      u16 ver_major; 
 |      u16 ver_minor; 
 |      u16 ver_assembly; 
 |      u16 prodid; 
 |  }; 
 |    
 |  struct toradex_eth_addr { 
 |      u32 oui:24; 
 |      u32 nic:24; 
 |  } __attribute__((__packed__)); 
 |    
 |  enum { 
 |      COLIBRI_PXA270_V1_312MHZ = 1, 
 |      COLIBRI_PXA270_V1_520MHZ, 
 |      COLIBRI_PXA320, 
 |      COLIBRI_PXA300, 
 |      COLIBRI_PXA310, 
 |      COLIBRI_PXA320_IT, 
 |      COLIBRI_PXA300_XT, 
 |      COLIBRI_PXA270_312MHZ, 
 |      COLIBRI_PXA270_520MHZ, 
 |      COLIBRI_VF50, /* not currently on sale */ 
 |      COLIBRI_VF61, 
 |      COLIBRI_VF61_IT, 
 |      COLIBRI_VF50_IT, 
 |      COLIBRI_IMX6S, 
 |      COLIBRI_IMX6DL, 
 |      COLIBRI_IMX6S_IT, 
 |      COLIBRI_IMX6DL_IT, 
 |      COLIBRI_T20_256MB = 20, 
 |      COLIBRI_T20_512MB, 
 |      COLIBRI_T20_512MB_IT, 
 |      COLIBRI_T30, 
 |      COLIBRI_T20_256MB_IT, 
 |      APALIS_T30_2GB, 
 |      APALIS_T30_1GB, 
 |      APALIS_IMX6Q, 
 |      APALIS_IMX6Q_IT, 
 |      APALIS_IMX6D, 
 |      COLIBRI_T30_IT, 
 |      APALIS_T30_IT, 
 |      COLIBRI_IMX7S, 
 |      COLIBRI_IMX7D, 
 |      APALIS_TK1_2GB, 
 |      APALIS_IMX6D_IT, 
 |  }; 
 |    
 |  extern const char * const toradex_modules[]; 
 |  extern bool valid_cfgblock; 
 |  extern struct toradex_hw tdx_hw_tag; 
 |  extern struct toradex_eth_addr tdx_eth_addr; 
 |  extern u32 tdx_serial; 
 |    
 |  int read_tdx_cfg_block(void); 
 |    
 |  #endif /* _TDX_CFG_BLOCK_H */ 
 |  
  |