diff options
author | Andreas Bießmann <andreas.biessmann@corscience.de> | 2013-09-06 15:04:52 +0200 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-11-01 15:55:58 -0400 |
commit | 459f1da88b42e9a795e51c73fcd55fd339fc594b (patch) | |
tree | 74d413388528877e38d55be691b5557a66053991 /board/corscience/tricorder/tricorder-eeprom.h | |
parent | deac6d664b3149ff0b44676c345303dad62b74b5 (diff) |
tricorder: add tricordereeprom command
The new tricordereeprom command can read and write the eeprom for hardware
detection on tricorder devices.
Signed-off-by: Andreas Bießmann <andreas.biessmann@corscience.de>
Diffstat (limited to 'board/corscience/tricorder/tricorder-eeprom.h')
-rw-r--r-- | board/corscience/tricorder/tricorder-eeprom.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/board/corscience/tricorder/tricorder-eeprom.h b/board/corscience/tricorder/tricorder-eeprom.h new file mode 100644 index 00000000000..06ed9a5911c --- /dev/null +++ b/board/corscience/tricorder/tricorder-eeprom.h @@ -0,0 +1,41 @@ +/* + * (C) Copyright 2013 + * Corscience GmbH & Co. KG, <www.corscience.de> + * Andreas Bießmann <andreas.biessmann@corscience.de> + * + * SPDX-License-Identifier: GPL-2.0+ + */ +#ifndef TRICORDER_EEPROM_H_ +#define TRICORDER_EEPROM_H_ + +#include <linux/compiler.h> + +#define TRICORDER_EEPROM_MAGIC 0xc2a94f52 +#define TRICORDER_EEPROM_VERSION 1 + +#define TRICORDER_BOARD_NAME_LENGTH 12 +#define TRICORDER_BOARD_VERSION_LENGTH 4 +#define TRICORDER_BOARD_SERIAL_LENGTH 12 +#define TRICORDER_INTERFACE_VERSION_LENGTH 4 + +struct tricorder_eeprom { + uint32_t magic; + uint16_t length; + uint16_t version; + char board_name[TRICORDER_BOARD_NAME_LENGTH]; + char board_version[TRICORDER_BOARD_VERSION_LENGTH]; + char board_serial[TRICORDER_BOARD_SERIAL_LENGTH]; + char interface_version[TRICORDER_INTERFACE_VERSION_LENGTH]; + uint32_t crc32; +} __packed; + +#define TRICORDER_EEPROM_SIZE sizeof(struct tricorder_eeprom) +#define TRICORDER_EEPROM_CRC_SIZE (TRICORDER_EEPROM_SIZE - \ + sizeof(uint32_t)) + +/** + * @brief read eeprom information from a specific eeprom address + */ +int tricorder_get_eeprom(int addr, struct tricorder_eeprom *eeprom); + +#endif /* TRICORDER_EEPROM_H_ */ |