]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/corscience/tricorder/tricorder-eeprom.h
tricorder: add tricordereeprom command
[karo-tx-uboot.git] / board / corscience / tricorder / tricorder-eeprom.h
diff --git a/board/corscience/tricorder/tricorder-eeprom.h b/board/corscience/tricorder/tricorder-eeprom.h
new file mode 100644 (file)
index 0000000..06ed9a5
--- /dev/null
@@ -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_ */