diff fluid-mnf/flash.h @ 311:9cecc930d78f

fluid-mnf: original source from TI, defenestrated line endings and rearranged directory structure, but no *.[ch] source file content changes yet
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 29 Feb 2020 05:36:07 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluid-mnf/flash.h	Sat Feb 29 05:36:07 2020 +0000
@@ -0,0 +1,102 @@
+/******************************************************************************
+ * FLUID (Flash Loader Utility Independent of Device)
+ * Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com
+ *
+ * Copyright Texas Instruments, 2001.
+ * Mads Meisner-Jensen, mmj@ti.com.
+ *
+ * Flash device database and lookup
+ *
+ * $Id: flash.h 1.11 Wed, 30 Oct 2002 12:09:08 +0100 tsj $
+ *
+ ******************************************************************************/
+
+
+/******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+
+struct sector_s {
+    int addr;
+    int size;
+};
+
+// We make room for a device of 2047 * 64kB + plus 8 * 8kB sectors (eg. 1Gb)
+struct memmap_s {
+    struct memmap_s *next;
+    char *name;
+    int size;
+    struct sector_s sectors[2047+7];
+};
+
+struct device_s {
+    struct device_s *next;
+    int algorithm_id;
+    int manufacturer_id;
+    int device_id;
+    char *name;
+    int t_erase;   // typical time (milli-seconds) for erasing one sector
+    int t_program; // typical time (micro-seconds) for programming one word
+    struct memmap_s *memmap;
+};
+
+struct manufact_s {
+    // struct manufact_s *next;
+    int id;
+    char *name;
+};
+
+struct algorithm_s {
+    int id;
+    char *name;
+};
+
+enum FlashAlgorithms {
+    ALGORITHM_AMD      = 1,
+    ALGORITHM_AMDFAST,
+    ALGORITHM_INTEL,
+    ALGORITHM_INTEL_BW,
+    ALGORITHM_MITSUBISHI,
+    ALGORITHM_SST
+};
+
+enum FlashManufacturers {
+    MANUFACT_AMD        = 0x01,
+    MANUFACT_ATMEL      = 0x1F,
+    MANUFACT_FUJITSU    = 0x04,
+    MANUFACT_INTEL      = 0x89,
+    MANUFACT_MXIC       = 0xC2,
+    MANUFACT_MITSUBISHI = 0x1C,
+    MANUFACT_SAMSUNG    = 0xEC,
+    MANUFACT_SHARP      = 0xB0,
+    MANUFACT_STM        = 0x20,
+    MANUFACT_SST        = 0xBF,
+    MANUFACT_TOSHIBA    = 0x98,
+    MANUFACT_TEST       = 0xFF
+};
+
+
+/******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+
+void device_print(struct device_s *device, char format);
+void devices_list(void);
+void file_read_devices(char *filename);
+
+int get_next_line(void);
+int get_token(void);
+int get_keyword(void);
+int get_string(void);
+int get_number(void);
+
+int time_compute(struct device_s *device,
+                 int sectors, int bytes, int chunks,
+                 int *time_erase, int *time_program, int *time_trransfer);
+    
+struct device_s *device_lookup_by_id(int manid, int devid);
+struct memmap_s *memmap_lookup_by_name(char *name);
+char *manufacturer_name_lookup_by_id(int id);
+int   manufacturer_id_lookup_by_name(char *name);
+char *algorithm_name_lookup_by_id(int id);
+int   algorithm_id_lookup_by_name(char *name);