comparison romdb.h @ 769:4638b88bc72d

Initial work on I2C EEPROM implementation
author Michael Pavone <pavone@retrodev.com>
date Fri, 10 Jul 2015 18:46:18 -0700
parents ea525f600b1d
children a3b90f746dcf
comparison
equal deleted inserted replaced
768:2f48a3c187c6 769:4638b88bc72d
14 14
15 #include "tern.h" 15 #include "tern.h"
16 #include "backend.h" 16 #include "backend.h"
17 17
18 typedef struct { 18 typedef struct {
19 uint32_t start;
20 uint32_t end;
21 uint16_t sda_write_mask;
22 uint16_t scl_mask;
23 uint8_t sda_read_bit;
24 } eeprom_map;
25
26 typedef struct {
27 uint8_t host_sda;
28 uint8_t slave_sda;
29 uint8_t scl;
30 } eeprom_state;
31
32 typedef struct {
19 char *name; 33 char *name;
20 memmap_chunk *map; 34 memmap_chunk *map;
21 uint8_t *save_buffer; 35 uint8_t *save_buffer;
36 eeprom_map *eeprom_map;
37 uint32_t num_eeprom;
22 uint32_t map_chunks; 38 uint32_t map_chunks;
23 uint32_t save_size; 39 uint32_t save_size;
24 uint32_t save_mask; 40 uint32_t save_mask;
25 uint8_t save_type; 41 uint8_t save_type;
26 uint8_t regions; 42 uint8_t regions;
28 44
29 tern_node *load_rom_db(); 45 tern_node *load_rom_db();
30 rom_info configure_rom(tern_node *rom_db, void *vrom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks); 46 rom_info configure_rom(tern_node *rom_db, void *vrom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks);
31 rom_info configure_rom_heuristics(uint8_t *rom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks); 47 rom_info configure_rom_heuristics(uint8_t *rom, uint32_t rom_size, memmap_chunk const *base_map, uint32_t base_chunks);
32 uint8_t translate_region_char(uint8_t c); 48 uint8_t translate_region_char(uint8_t c);
49 void eeprom_init(eeprom_state *state);
33 50
34 #endif //ROMDB_H_ 51 #endif //ROMDB_H_