Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 2 | /* |
Marcel Ziswiler | 75b9327 | 2020-01-28 14:42:23 +0100 | [diff] [blame] | 3 | * Copyright (c) 2016-2020 Toradex |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 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, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 28 | COLIBRI_PXA310, /* 5 */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 29 | COLIBRI_PXA320_IT, |
| 30 | COLIBRI_PXA300_XT, |
| 31 | COLIBRI_PXA270_312MHZ, |
| 32 | COLIBRI_PXA270_520MHZ, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 33 | COLIBRI_VF50, /* 10 */ |
| 34 | COLIBRI_VF61, /* not currently on sale */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 35 | COLIBRI_VF61_IT, |
| 36 | COLIBRI_VF50_IT, |
| 37 | COLIBRI_IMX6S, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 38 | COLIBRI_IMX6DL, /* 15 */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 39 | COLIBRI_IMX6S_IT, |
| 40 | COLIBRI_IMX6DL_IT, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 41 | /* 18 */ |
| 42 | /* 19 */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 43 | COLIBRI_T20_256MB = 20, |
| 44 | COLIBRI_T20_512MB, |
| 45 | COLIBRI_T20_512MB_IT, |
| 46 | COLIBRI_T30, |
| 47 | COLIBRI_T20_256MB_IT, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 48 | APALIS_T30_2GB, /* 25 */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 49 | APALIS_T30_1GB, |
| 50 | APALIS_IMX6Q, |
| 51 | APALIS_IMX6Q_IT, |
| 52 | APALIS_IMX6D, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 53 | COLIBRI_T30_IT, /* 30 */ |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 54 | APALIS_T30_IT, |
| 55 | COLIBRI_IMX7S, |
| 56 | COLIBRI_IMX7D, |
| 57 | APALIS_TK1_2GB, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 58 | APALIS_IMX6D_IT, /* 35 */ |
Stefan Agner | 01875e9 | 2018-05-30 19:01:47 +0200 | [diff] [blame] | 59 | COLIBRI_IMX6ULL, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 60 | APALIS_IMX8QM_WIFI_BT_IT, |
| 61 | COLIBRI_IMX8QXP_WIFI_BT_IT, |
Stefan Agner | 01875e9 | 2018-05-30 19:01:47 +0200 | [diff] [blame] | 62 | COLIBRI_IMX7D_EMMC, |
| 63 | COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */ |
| 64 | COLIBRI_IMX7D_EPDC, |
Marcel Ziswiler | 2658c8e | 2019-04-09 17:25:32 +0200 | [diff] [blame] | 65 | APALIS_TK1_4GB, /* not currently on sale */ |
Gerard Salvatella | 5ab3b1d | 2019-04-09 17:24:07 +0200 | [diff] [blame] | 66 | COLIBRI_T20_512MB_IT_SETEK, |
| 67 | COLIBRI_IMX6ULL_IT, |
| 68 | COLIBRI_IMX6ULL_WIFI_BT, /* 45 */ |
Marcel Ziswiler | f60ffec | 2019-04-09 17:25:33 +0200 | [diff] [blame] | 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, |
Marcel Ziswiler | 75b9327 | 2020-01-28 14:42:23 +0100 | [diff] [blame] | 76 | APALIS_IMX8QXP, |
| 77 | APALIS_IMX8DXP, |
Marcel Ziswiler | 4a9c702 | 2020-10-28 11:58:08 +0200 | [diff] [blame] | 78 | VERDIN_IMX8MMQ_WIFI_BT_IT, /* 55 */ |
| 79 | VERDIN_IMX8MNQ_WIFI_BT, |
Marcel Ziswiler | eca26ba | 2020-01-28 14:42:24 +0100 | [diff] [blame] | 80 | VERDIN_IMX8MMDL, |
Marcel Ziswiler | 4a9c702 | 2020-10-28 11:58:08 +0200 | [diff] [blame] | 81 | VERDIN_IMX8MPQ_WIFI_BT_IT, |
| 82 | VERDIN_IMX8MMQ_IT, |
| 83 | VERDIN_IMX8MMDL_WIFI_BT_IT, /* 60 */ |
| 84 | VERDIN_IMX8MPQ, |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 85 | }; |
| 86 | |
Igor Opaniuk | 414df35 | 2020-07-15 13:30:54 +0300 | [diff] [blame] | 87 | enum { |
| 88 | DAHLIA = 155, |
| 89 | VERDIN_DEVELOPMENT_BOARD = 156, |
| 90 | }; |
| 91 | |
| 92 | enum { |
| 93 | VERDIN_DSI_TO_HDMI_ADAPTER = 157, |
| 94 | VERDIN_DSI_TO_LVDS_ADAPTER = 159, |
| 95 | }; |
| 96 | |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 97 | extern const char * const toradex_modules[]; |
Igor Opaniuk | 414df35 | 2020-07-15 13:30:54 +0300 | [diff] [blame] | 98 | extern const char * const toradex_carrier_boards[]; |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 99 | extern bool valid_cfgblock; |
| 100 | extern struct toradex_hw tdx_hw_tag; |
Igor Opaniuk | 67c9bfc | 2020-07-15 13:30:55 +0300 | [diff] [blame] | 101 | extern struct toradex_hw tdx_car_hw_tag; |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 102 | extern struct toradex_eth_addr tdx_eth_addr; |
| 103 | extern u32 tdx_serial; |
Igor Opaniuk | 67c9bfc | 2020-07-15 13:30:55 +0300 | [diff] [blame] | 104 | extern u32 tdx_car_serial; |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 105 | |
| 106 | int read_tdx_cfg_block(void); |
Igor Opaniuk | 67c9bfc | 2020-07-15 13:30:55 +0300 | [diff] [blame] | 107 | int read_tdx_cfg_block_carrier(void); |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 108 | |
Igor Opaniuk | e9ad67a | 2020-07-15 13:30:56 +0300 | [diff] [blame] | 109 | int try_migrate_tdx_cfg_block_carrier(void); |
| 110 | |
Marcel Ziswiler | 7a28dfc | 2016-11-16 17:49:22 +0100 | [diff] [blame] | 111 | #endif /* _TDX_CFG_BLOCK_H */ |