uboot/board/corscience/tricorder/tricorder-eeprom.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2013
   3 * Corscience GmbH & Co. KG, <www.corscience.de>
   4 * Andreas Bießmann <andreas.biessmann@corscience.de>
   5 *
   6 * SPDX-License-Identifier:     GPL-2.0+
   7 */
   8#ifndef TRICORDER_EEPROM_H_
   9#define TRICORDER_EEPROM_H_
  10
  11#include <linux/compiler.h>
  12
  13#define TRICORDER_EEPROM_MAGIC 0xc2a94f52
  14#define TRICORDER_EEPROM_VERSION 1
  15
  16#define TRICORDER_BOARD_NAME_LENGTH             12
  17#define TRICORDER_BOARD_VERSION_LENGTH          4
  18#define TRICORDER_BOARD_SERIAL_LENGTH           12
  19#define TRICORDER_INTERFACE_VERSION_LENGTH      4
  20
  21struct tricorder_eeprom {
  22        uint32_t magic;
  23        uint16_t length;
  24        uint16_t version;
  25        char board_name[TRICORDER_BOARD_NAME_LENGTH];
  26        char board_version[TRICORDER_BOARD_VERSION_LENGTH];
  27        char board_serial[TRICORDER_BOARD_SERIAL_LENGTH];
  28        char interface_version[TRICORDER_INTERFACE_VERSION_LENGTH];
  29        uint32_t crc32;
  30} __packed;
  31
  32#define TRICORDER_EEPROM_SIZE           sizeof(struct tricorder_eeprom)
  33#define TRICORDER_EEPROM_CRC_SIZE       (TRICORDER_EEPROM_SIZE - \
  34                                         sizeof(uint32_t))
  35
  36/**
  37 * @brief read eeprom information from a specific eeprom address
  38 */
  39int tricorder_get_eeprom(int addr, struct tricorder_eeprom *eeprom);
  40
  41#endif /* TRICORDER_EEPROM_H_ */
  42