diff options
author | Renaud Barbier <renaud.barbier@ge.com> | 2013-11-05 15:36:11 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-11-06 11:04:38 +0100 |
commit | 8f44af62c5e02d74f360c7d3a47062071a5b885e (patch) | |
tree | 6e09dbca55770a95f43d375717d4f44e04c6ceac /arch/ppc/boards/geip-da923rc/product_data.h | |
parent | 04180c0464d642d5cc8b94cdaf50d359788fd6de (diff) | |
download | barebox-8f44af62c5e02d74f360c7d3a47062071a5b885e.tar.gz barebox-8f44af62c5e02d74f360c7d3a47062071a5b885e.tar.xz |
ppc: DA923RC: add board support
Add the GEIP DA923RC board support. This includes core
files as well as defconfig and make files.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/ppc/boards/geip-da923rc/product_data.h')
-rw-r--r-- | arch/ppc/boards/geip-da923rc/product_data.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/arch/ppc/boards/geip-da923rc/product_data.h b/arch/ppc/boards/geip-da923rc/product_data.h new file mode 100644 index 0000000000..f172fb5692 --- /dev/null +++ b/arch/ppc/boards/geip-da923rc/product_data.h @@ -0,0 +1,62 @@ +/* + * Copyright 2013 GE Intelligent Platforms, Inc. + * + * The product data structure and function prototypes. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +struct board_info { + uint32_t bid; + uint32_t rev; +}; + +#define MAX_MAC 8 +enum product_data_version { + PDVERSION_V1 = 1, + PDVERSION_V1bis = 0x10, + PDVERSION_V2 = 2, + PDVERSION_MAX = PDVERSION_V2, +}; + +struct __attribute__ ((__packed__)) product_data_header { + unsigned short tag; + unsigned char version; + unsigned short len; +}; + +struct __attribute__ ((__packed__)) mac { + unsigned char count; + unsigned char mac[MAX_MAC][6]; +}; + +struct __attribute__ ((__packed__)) product_data_v1 { + struct product_data_header pdh; + struct mac mac; + int crc32; +}; + +struct __attribute__ ((__packed__)) product_data_v2 { + struct product_data_header pdh; + struct mac mac; + char sn[8]; + int crc32; +}; + +struct __attribute__ ((__packed__)) ge_product_data { + union { + struct product_data_v1 v1; + struct product_data_v2 v2; + }; +}; + +extern int ge_get_product_data(struct ge_product_data *productp); +extern void da923rc_boardinfo_get(struct board_info *bi); |