Lines Matching +full:eeprom +full:- +full:data

2  * QEMU SMBus EEPROM device
31 #include "hw/qdev-properties.h"
38 #define TYPE_SMBUS_EEPROM "smbus-eeprom"
46 uint8_t data[SMBUS_EEPROM_SIZE]; member
54 SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); in eeprom_receive_byte() local
55 uint8_t *data = eeprom->data; in eeprom_receive_byte() local
56 uint8_t val = data[eeprom->offset++]; in eeprom_receive_byte()
58 eeprom->accessed = true; in eeprom_receive_byte()
61 dev->i2c.address, val); in eeprom_receive_byte()
68 SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); in eeprom_write_data() local
69 uint8_t *data = eeprom->data; in eeprom_write_data() local
71 eeprom->accessed = true; in eeprom_write_data()
74 dev->i2c.address, buf[0], buf[1]); in eeprom_write_data()
77 eeprom->offset = buf[0]; in eeprom_write_data()
79 len--; in eeprom_write_data()
81 for (; len > 0; len--) { in eeprom_write_data()
82 data[eeprom->offset] = *buf++; in eeprom_write_data()
83 eeprom->offset = (eeprom->offset + 1) % SMBUS_EEPROM_SIZE; in eeprom_write_data()
92 SMBusEEPROMDevice *eeprom = opaque; in smbus_eeprom_vmstate_needed() local
94 return (eeprom->accessed || smbus_vmstate_needed(&eeprom->smbusdev)) && in smbus_eeprom_vmstate_needed()
95 !mc->smbus_no_migration_support; in smbus_eeprom_vmstate_needed()
99 .name = "smbus-eeprom",
105 VMSTATE_UINT8_ARRAY(data, SMBusEEPROMDevice, SMBUS_EEPROM_SIZE),
113 * Reset the EEPROM contents to the initial state on a reset. This
114 * isn't really how an EEPROM works, of course, but the general
124 SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); in smbus_eeprom_reset() local
126 memcpy(eeprom->data, eeprom->init_data, SMBUS_EEPROM_SIZE); in smbus_eeprom_reset()
127 eeprom->offset = 0; in smbus_eeprom_reset()
132 SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); in smbus_eeprom_realize() local
135 if (eeprom->init_data == NULL) { in smbus_eeprom_realize()
140 static void smbus_eeprom_class_initfn(ObjectClass *klass, void *data) in smbus_eeprom_class_initfn() argument
145 dc->realize = smbus_eeprom_realize; in smbus_eeprom_class_initfn()
147 sc->receive_byte = eeprom_receive_byte; in smbus_eeprom_class_initfn()
148 sc->write_data = eeprom_write_data; in smbus_eeprom_class_initfn()
149 dc->vmsd = &vmstate_smbus_eeprom; in smbus_eeprom_class_initfn()
151 dc->user_creatable = false; in smbus_eeprom_class_initfn()
172 SMBUS_EEPROM(dev)->init_data = eeprom_buf; in DEFINE_TYPES()
194 /* Generate SDRAM SPD EEPROM data describing a module of type and size */
221 sz_log2 = 31 - clz32(size); in spd_data_generate()
228 sz_log2--; in spd_data_generate()
236 sz_log2--; in spd_data_generate()
240 density = 1ULL << (sz_log2 - 2); in spd_data_generate()
255 spd[0] = 128; /* data bytes in EEPROM */ in spd_data_generate()
256 spd[1] = 8; /* log2 size of EEPROM */ in spd_data_generate()
260 spd[5] = (type == DDR2 ? nbanks - 1 : nbanks); in spd_data_generate()
261 spd[6] = 64; /* module data width */ in spd_data_generate()
262 /* reserved / data width high */ in spd_data_generate()
266 /* DIMM configuration 0 = non-ECC */ in spd_data_generate()
279 /* data access time */ in spd_data_generate()
281 /* data access time */ in spd_data_generate()
289 spd[34] = 20; /* data input setup time */ in spd_data_generate()
290 spd[35] = 8; /* data input hold time */ in spd_data_generate()