Lines Matching refs:uci

120 static void save_microcode_patch(struct ucode_cpu_info *uci, void *data, unsigned int size)  in save_microcode_patch()  argument
166 if (!find_matching_signature(p->data, uci->cpu_sig.sig, uci->cpu_sig.pf)) in save_microcode_patch()
283 scan_microcode(void *data, size_t size, struct ucode_cpu_info *uci, bool save) in scan_microcode() argument
303 if (!find_matching_signature(data, uci->cpu_sig.sig, in scan_microcode()
304 uci->cpu_sig.pf)) { in scan_microcode()
310 save_microcode_patch(uci, data, mc_size); in scan_microcode()
317 uci->cpu_sig.sig, in scan_microcode()
318 uci->cpu_sig.pf, in scan_microcode()
319 uci->cpu_sig.rev)) in scan_microcode()
345 static int collect_cpu_info_early(struct ucode_cpu_info *uci) in collect_cpu_info_early() argument
352 memset(uci, 0, sizeof(*uci)); in collect_cpu_info_early()
370 uci->cpu_sig = csig; in collect_cpu_info_early()
371 uci->valid = 1; in collect_cpu_info_early()
381 struct ucode_cpu_info uci; in show_saved_mc() local
389 collect_cpu_info_early(&uci); in show_saved_mc()
391 sig = uci.cpu_sig.sig; in show_saved_mc()
392 pf = uci.cpu_sig.pf; in show_saved_mc()
393 rev = uci.cpu_sig.rev; in show_saved_mc()
443 static void save_mc_for_early(struct ucode_cpu_info *uci, u8 *mc, unsigned int size) in save_mc_for_early() argument
450 save_microcode_patch(uci, mc, size); in save_mc_for_early()
476 print_ucode_info(struct ucode_cpu_info *uci, unsigned int date) in print_ucode_info() argument
479 uci->cpu_sig.rev, in print_ucode_info()
495 struct ucode_cpu_info uci; in show_ucode_info_early() local
498 collect_cpu_info_early(&uci); in show_ucode_info_early()
499 print_ucode_info(&uci, current_mc_date); in show_ucode_info_early()
508 static void print_ucode(struct ucode_cpu_info *uci) in print_ucode() argument
514 mc = uci->mc; in print_ucode()
526 static inline void print_ucode(struct ucode_cpu_info *uci) in print_ucode() argument
530 mc = uci->mc; in print_ucode()
534 print_ucode_info(uci, mc->hdr.date); in print_ucode()
538 static int apply_microcode_early(struct ucode_cpu_info *uci, bool early) in apply_microcode_early() argument
543 mc = uci->mc; in apply_microcode_early()
554 uci->cpu_sig.rev = rev; in apply_microcode_early()
571 uci->cpu_sig.rev = rev; in apply_microcode_early()
574 print_ucode(uci); in apply_microcode_early()
576 print_ucode_info(uci, mc->hdr.date); in apply_microcode_early()
583 struct ucode_cpu_info uci; in save_microcode_in_initrd_intel() local
600 collect_cpu_info_early(&uci); in save_microcode_in_initrd_intel()
602 scan_microcode(cp.data, cp.size, &uci, true); in save_microcode_in_initrd_intel()
612 static struct microcode_intel *__load_ucode_intel(struct ucode_cpu_info *uci) in __load_ucode_intel() argument
633 collect_cpu_info_early(uci); in __load_ucode_intel()
635 return scan_microcode(cp.data, cp.size, uci, false); in __load_ucode_intel()
641 struct ucode_cpu_info uci; in load_ucode_intel_bsp() local
643 patch = __load_ucode_intel(&uci); in load_ucode_intel_bsp()
647 uci.mc = patch; in load_ucode_intel_bsp()
649 apply_microcode_early(&uci, true); in load_ucode_intel_bsp()
655 struct ucode_cpu_info uci; in load_ucode_intel_ap() local
664 patch = __load_ucode_intel(&uci); in load_ucode_intel_ap()
671 uci.mc = *iup; in load_ucode_intel_ap()
673 if (apply_microcode_early(&uci, true)) { in load_ucode_intel_ap()
681 static struct microcode_intel *find_patch(struct ucode_cpu_info *uci) in find_patch() argument
690 if (phdr->rev <= uci->cpu_sig.rev) in find_patch()
694 uci->cpu_sig.sig, in find_patch()
695 uci->cpu_sig.pf)) in find_patch()
706 struct ucode_cpu_info uci; in reload_ucode_intel() local
708 collect_cpu_info_early(&uci); in reload_ucode_intel()
710 p = find_patch(&uci); in reload_ucode_intel()
714 uci.mc = p; in reload_ucode_intel()
716 apply_microcode_early(&uci, false); in reload_ucode_intel()
749 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; in apply_microcode_intel() local
762 mc = find_patch(uci); in apply_microcode_intel()
764 mc = uci->mc; in apply_microcode_intel()
809 uci->cpu_sig.rev = rev; in apply_microcode_intel()
821 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; in generic_load_microcode() local
824 int new_rev = uci->cpu_sig.rev; in generic_load_microcode()
865 csig = uci->cpu_sig.sig; in generic_load_microcode()
866 cpf = uci->cpu_sig.pf; in generic_load_microcode()
887 vfree(uci->mc); in generic_load_microcode()
888 uci->mc = (struct microcode_intel *)new_mc; in generic_load_microcode()
895 save_mc_for_early(uci, new_mc, new_mc_size); in generic_load_microcode()
898 cpu, new_rev, uci->cpu_sig.rev); in generic_load_microcode()