1*a2777ecbSMarcel Ziswiler /* 2*a2777ecbSMarcel Ziswiler * Copyright (c) 2016 Toradex, Inc. 3*a2777ecbSMarcel Ziswiler * 4*a2777ecbSMarcel Ziswiler * SPDX-License-Identifier: GPL-2.0+ 5*a2777ecbSMarcel Ziswiler */ 6*a2777ecbSMarcel Ziswiler 7*a2777ecbSMarcel Ziswiler #ifndef _TDX_CFG_BLOCK_H 8*a2777ecbSMarcel Ziswiler #define _TDX_CFG_BLOCK_H 9*a2777ecbSMarcel Ziswiler 10*a2777ecbSMarcel Ziswiler #include "tdx-common.h" 11*a2777ecbSMarcel Ziswiler 12*a2777ecbSMarcel Ziswiler struct toradex_hw { 13*a2777ecbSMarcel Ziswiler u16 ver_major; 14*a2777ecbSMarcel Ziswiler u16 ver_minor; 15*a2777ecbSMarcel Ziswiler u16 ver_assembly; 16*a2777ecbSMarcel Ziswiler u16 prodid; 17*a2777ecbSMarcel Ziswiler }; 18*a2777ecbSMarcel Ziswiler 19*a2777ecbSMarcel Ziswiler struct toradex_eth_addr { 20*a2777ecbSMarcel Ziswiler u32 oui:24; 21*a2777ecbSMarcel Ziswiler u32 nic:24; 22*a2777ecbSMarcel Ziswiler } __attribute__((__packed__)); 23*a2777ecbSMarcel Ziswiler 24*a2777ecbSMarcel Ziswiler enum { 25*a2777ecbSMarcel Ziswiler COLIBRI_PXA270_V1_312MHZ = 1, 26*a2777ecbSMarcel Ziswiler COLIBRI_PXA270_V1_520MHZ, 27*a2777ecbSMarcel Ziswiler COLIBRI_PXA320, 28*a2777ecbSMarcel Ziswiler COLIBRI_PXA300, 29*a2777ecbSMarcel Ziswiler COLIBRI_PXA310, 30*a2777ecbSMarcel Ziswiler COLIBRI_PXA320_IT, 31*a2777ecbSMarcel Ziswiler COLIBRI_PXA300_XT, 32*a2777ecbSMarcel Ziswiler COLIBRI_PXA270_312MHZ, 33*a2777ecbSMarcel Ziswiler COLIBRI_PXA270_520MHZ, 34*a2777ecbSMarcel Ziswiler COLIBRI_VF50, /* not currently on sale */ 35*a2777ecbSMarcel Ziswiler COLIBRI_VF61, 36*a2777ecbSMarcel Ziswiler COLIBRI_VF61_IT, 37*a2777ecbSMarcel Ziswiler COLIBRI_VF50_IT, 38*a2777ecbSMarcel Ziswiler COLIBRI_IMX6S, 39*a2777ecbSMarcel Ziswiler COLIBRI_IMX6DL, 40*a2777ecbSMarcel Ziswiler COLIBRI_IMX6S_IT, 41*a2777ecbSMarcel Ziswiler COLIBRI_IMX6DL_IT, 42*a2777ecbSMarcel Ziswiler COLIBRI_T20_256MB = 20, 43*a2777ecbSMarcel Ziswiler COLIBRI_T20_512MB, 44*a2777ecbSMarcel Ziswiler COLIBRI_T20_512MB_IT, 45*a2777ecbSMarcel Ziswiler COLIBRI_T30, 46*a2777ecbSMarcel Ziswiler COLIBRI_T20_256MB_IT, 47*a2777ecbSMarcel Ziswiler APALIS_T30_2GB, 48*a2777ecbSMarcel Ziswiler APALIS_T30_1GB, 49*a2777ecbSMarcel Ziswiler APALIS_IMX6Q, 50*a2777ecbSMarcel Ziswiler APALIS_IMX6Q_IT, 51*a2777ecbSMarcel Ziswiler APALIS_IMX6D, 52*a2777ecbSMarcel Ziswiler COLIBRI_T30_IT, 53*a2777ecbSMarcel Ziswiler APALIS_T30_IT, 54*a2777ecbSMarcel Ziswiler COLIBRI_IMX7S, 55*a2777ecbSMarcel Ziswiler COLIBRI_IMX7D, 56*a2777ecbSMarcel Ziswiler APALIS_TK1_2GB, 57*a2777ecbSMarcel Ziswiler APALIS_IMX6D_IT, 58*a2777ecbSMarcel Ziswiler }; 59*a2777ecbSMarcel Ziswiler 60*a2777ecbSMarcel Ziswiler extern const char * const toradex_modules[]; 61*a2777ecbSMarcel Ziswiler extern bool valid_cfgblock; 62*a2777ecbSMarcel Ziswiler extern struct toradex_hw tdx_hw_tag; 63*a2777ecbSMarcel Ziswiler extern struct toradex_eth_addr tdx_eth_addr; 64*a2777ecbSMarcel Ziswiler extern u32 tdx_serial; 65*a2777ecbSMarcel Ziswiler 66*a2777ecbSMarcel Ziswiler int read_tdx_cfg_block(void); 67*a2777ecbSMarcel Ziswiler 68*a2777ecbSMarcel Ziswiler #endif /* _TDX_CFG_BLOCK_H */ 69