Lines Matching full:update

5  * Microcode update for Intel PIII and later CPUs
26 * whether the update is applicable or not. We also use the same structure
42 struct microcode_update *update) in microcode_decode_node() argument
44 update->data = fdt_getprop(blob, node, "data", &update->size); in microcode_decode_node()
45 if (!update->data) in microcode_decode_node()
47 update->data += UCODE_HEADER_LEN; in microcode_decode_node()
48 update->size -= UCODE_HEADER_LEN; in microcode_decode_node()
50 update->header_version = fdtdec_get_int(blob, node, in microcode_decode_node()
52 update->update_revision = fdtdec_get_int(blob, node, in microcode_decode_node()
53 "intel,update-revision", 0); in microcode_decode_node()
54 update->date_code = fdtdec_get_int(blob, node, in microcode_decode_node()
56 update->processor_signature = fdtdec_get_int(blob, node, in microcode_decode_node()
58 update->checksum = fdtdec_get_int(blob, node, "intel,checksum", 0); in microcode_decode_node()
59 update->loader_revision = fdtdec_get_int(blob, node, in microcode_decode_node()
61 update->processor_flags = fdtdec_get_int(blob, node, in microcode_decode_node()
102 /* CPUID sets MSR 0x8B iff a microcode update has been loaded. */ in microcode_read_cpu()
124 /* Get a microcode update from the device tree and apply it */
127 struct microcode_update cpu, update; in microcode_update_intel() local
147 ret = microcode_decode_node(blob, node, &update); in microcode_update_intel()
159 debug("%s: Unable to decode update: %d\n", __func__, in microcode_update_intel()
163 if (!(update.processor_signature == cpu.processor_signature && in microcode_update_intel()
164 (update.processor_flags & cpu.processor_flags))) { in microcode_update_intel()
165 debug("%s: Skipping non-matching update, sig=%x, pf=%x\n", in microcode_update_intel()
166 __func__, update.processor_signature, in microcode_update_intel()
167 update.processor_flags); in microcode_update_intel()
171 wrmsr(MSR_IA32_UCODE_WRITE, (ulong)update.data, 0); in microcode_update_intel()
174 rev, update.date_code & 0xffff, in microcode_update_intel()
175 (update.date_code >> 24) & 0xff, in microcode_update_intel()
176 (update.date_code >> 16) & 0xff); in microcode_update_intel()
177 if (update.update_revision != rev) { in microcode_update_intel()
178 printf("Microcode update failed\n"); in microcode_update_intel()