1 /*********************************************************************
2  *
3  *   LPC Parts identification
4  *
5  *
6  * Written by Nathael Pajani <nathael.pajani@nathael.net>
7  *
8  * This programm is released under the terms of the GNU GPLv3 licence
9  * as can be found on the GNU website : <http://www.gnu.org/licenses/>
10  *
11  *********************************************************************/
13 #ifndef FIND_PART_H
14 #define FIND_PART_H
16 #include <stdint.h> /* uint64_t and uint32_t */
18 #define PART_NAME_LENGTH  25
20 /* Part descriptor */
21 /* ALL data below name MUST be of type uint32_t */
22 struct part_desc {
23         uint64_t part_id;
24         char* name;
25         /* Flash */
26         uint32_t flash_base;
27         uint32_t flash_size;
28         uint32_t flash_nb_sectors;
29         uint32_t reset_vector_offset;
30         /* RAM */
31         uint32_t ram_base;
32         uint32_t ram_size;
33         uint32_t ram_buff_offset; /* Used to transfer data for flashing */
34         uint32_t ram_buff_size;
35         uint32_t uuencode;
36 };
38 /* When looking for parts description in a file ee do allocate (malloc) two memory
39  *   chunks which we will never free.
40  * The user should free part_desc->name and part_desc when they are no more usefull
41  */
42 struct part_desc* find_part_in_file(uint64_t dev_id, char* conf_file_name);
44 /* Find a part in the internal parts table */
45 /* FIXME : To be inplemented ? */
46 struct part_desc* find_part_internal_tab(uint64_t dev_id);
48 #endif /* FIND_PART_H */