void pmc_init_seeprom (u_int32_t addr, u_int32_t serialNum) { PROMFORMAT buffer; /* Memory image of structure */ u_int32_t crc; /* CRC of structure */ time_t createTime; int i; createTime = get_seconds (); /* use template data */ for (i = 0; i < sizeof (FLD_TYPE2); ++i) buffer.bytes[i] = mfg_template[i]; /* Update serial number field in buffer */ pmcSetBuffValue (&buffer.fldType2.Serial[3], serialNum, 3); /* Update create time field in buffer */ pmcSetBuffValue (&buffer.fldType2.CreateTime[0], createTime, 4); /* Update CRC field in buffer */ crc = pmcCalcCrc_T02 (&buffer); pmcSetBuffValue (&buffer.fldType2.Crc32[0], crc, 4); #ifdef DEBUG for (i = 0; i < sizeof (FLD_TYPE2); ++i) pr_info("[%02X] = %02X\n", i, buffer.bytes[i] & 0xFF); #endif /* Write structure to serial EEPROM */ pmc_eeprom_write_buffer (addr, EE_MFG, (char *) &buffer, sizeof (FLD_TYPE2)); }
void pmc_init_seeprom (u_int32_t addr, u_int32_t serialNum) { PROMFORMAT buffer; /* */ u_int32_t crc; /* */ time_t createTime; int i; createTime = get_seconds (); /* */ for (i = 0; i < sizeof (FLD_TYPE2); ++i) buffer.bytes[i] = mfg_template[i]; /* */ pmcSetBuffValue (&buffer.fldType2.Serial[3], serialNum, 3); /* */ pmcSetBuffValue (&buffer.fldType2.CreateTime[0], createTime, 4); /* */ crc = pmcCalcCrc_T02 (&buffer); pmcSetBuffValue (&buffer.fldType2.Crc32[0], crc, 4); #ifdef DEBUG for (i = 0; i < sizeof (FLD_TYPE2); ++i) pr_info("[%02X] = %02X\n", i, buffer.bytes[i] & 0xFF); #endif /* */ pmc_eeprom_write_buffer (addr, EE_MFG, (char *) &buffer, sizeof (FLD_TYPE2)); }