comparison romdb.h @ 1414:d94855080529

Move I2C EEPROM and NOR Flash functions out of romdb.c into new files
author Michael Pavone <pavone@retrodev.com>
date Fri, 23 Jun 2017 21:48:38 -0700
parents 780fbe0b97be
children 11ac0b511cff
comparison
equal deleted inserted replaced
1413:3d7f668dce3d 1414:d94855080529
20 uint32_t end; 20 uint32_t end;
21 uint16_t sda_write_mask; 21 uint16_t sda_write_mask;
22 uint16_t scl_mask; 22 uint16_t scl_mask;
23 uint8_t sda_read_bit; 23 uint8_t sda_read_bit;
24 } eeprom_map; 24 } eeprom_map;
25
26 typedef struct {
27 char *buffer;
28 uint32_t size;
29 uint16_t address;
30 uint8_t host_sda;
31 uint8_t slave_sda;
32 uint8_t scl;
33 uint8_t state;
34 uint8_t counter;
35 uint8_t latch;
36 } eeprom_state;
37 25
38 typedef struct { 26 typedef struct {
39 uint8_t *buffer; 27 uint8_t *buffer;
40 uint8_t *page_buffer; 28 uint8_t *page_buffer;
41 uint32_t size; 29 uint32_t size;
81 69
82 tern_node *load_rom_db(); 70 tern_node *load_rom_db();
83 rom_info configure_rom(tern_node *rom_db, void *vrom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, memmap_chunk const *base_map, uint32_t base_chunks); 71 rom_info configure_rom(tern_node *rom_db, void *vrom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, memmap_chunk const *base_map, uint32_t base_chunks);
84 rom_info configure_rom_heuristics(uint8_t *rom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks); 72 rom_info configure_rom_heuristics(uint8_t *rom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks);
85 uint8_t translate_region_char(uint8_t c); 73 uint8_t translate_region_char(uint8_t c);
86 void eeprom_init(eeprom_state *state, uint8_t *buffer, uint32_t size);
87 void nor_flash_init(nor_state *state, uint8_t *buffer, uint32_t size, uint32_t page_size, uint16_t product_id, uint8_t bus_flags);
88 char const *save_type_name(uint8_t save_type); 74 char const *save_type_name(uint8_t save_type);
89 //Note: free_rom_info only frees things pointed to by a rom_info struct, not the struct itself 75 //Note: free_rom_info only frees things pointed to by a rom_info struct, not the struct itself
90 //this is because rom_info structs are typically stack allocated 76 //this is because rom_info structs are typically stack allocated
91 void free_rom_info(rom_info *info); 77 void free_rom_info(rom_info *info);
92 78