diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2016-11-16 17:49:22 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-11-28 15:10:32 -0500 |
commit | a2777ecb9d11882dba696035defa35c70dd26733 (patch) | |
tree | 1f28cb6d01bdcadd62b82363130634604aca3b04 /board/toradex/common/tdx-cfg-block.h | |
parent | b05d6806cd6a95d46c22036a684a09501fdb2264 (diff) | |
download | u-boot-imx-a2777ecb9d11882dba696035defa35c70dd26733.zip u-boot-imx-a2777ecb9d11882dba696035defa35c70dd26733.tar.gz u-boot-imx-a2777ecb9d11882dba696035defa35c70dd26733.tar.bz2 |
toradex: config block handling
Add Toradex factory configuration block handling. The config block is a
data structure which gets stored to flash during production testing. The
structure holds such information as board resp. hardware revision,
product ID and serial number which is used as the NIC part of the
Ethernet MAC address as well. The config block will be read upon boot by
the show_board_info() function, displayed as part of the board
information and passed to Linux via device tree or ATAGs.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'board/toradex/common/tdx-cfg-block.h')
-rw-r--r-- | board/toradex/common/tdx-cfg-block.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h new file mode 100644 index 0000000..fd7c362 --- /dev/null +++ b/board/toradex/common/tdx-cfg-block.h @@ -0,0 +1,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 */ |