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()
483 print_ucode_info(struct ucode_cpu_info *uci, unsigned int date) in print_ucode_info() argument
486 uci->cpu_sig.rev, in print_ucode_info()
502 struct ucode_cpu_info uci; in show_ucode_info_early() local
505 collect_cpu_info_early(&uci); in show_ucode_info_early()
506 print_ucode_info(&uci, current_mc_date); in show_ucode_info_early()
515 static void print_ucode(struct ucode_cpu_info *uci) in print_ucode() argument
521 mc = uci->mc; in print_ucode()
533 static inline void print_ucode(struct ucode_cpu_info *uci) in print_ucode() argument
537 mc = uci->mc; in print_ucode()
541 print_ucode_info(uci, mc->hdr.date); in print_ucode()
545 static int apply_microcode_early(struct ucode_cpu_info *uci, bool early) in apply_microcode_early() argument
550 mc = uci->mc; in apply_microcode_early()
561 uci->cpu_sig.rev = rev; in apply_microcode_early()
578 uci->cpu_sig.rev = rev; in apply_microcode_early()
581 print_ucode(uci); in apply_microcode_early()
583 print_ucode_info(uci, mc->hdr.date); in apply_microcode_early()
590 struct ucode_cpu_info uci; in save_microcode_in_initrd_intel() local
607 collect_cpu_info_early(&uci); in save_microcode_in_initrd_intel()
609 scan_microcode(cp.data, cp.size, &uci, true); in save_microcode_in_initrd_intel()
619 static struct microcode_intel *__load_ucode_intel(struct ucode_cpu_info *uci) in __load_ucode_intel() argument
640 collect_cpu_info_early(uci); in __load_ucode_intel()
642 return scan_microcode(cp.data, cp.size, uci, false); in __load_ucode_intel()
648 struct ucode_cpu_info uci; in load_ucode_intel_bsp() local
650 patch = __load_ucode_intel(&uci); in load_ucode_intel_bsp()
654 uci.mc = patch; in load_ucode_intel_bsp()
656 apply_microcode_early(&uci, true); in load_ucode_intel_bsp()
662 struct ucode_cpu_info uci; in load_ucode_intel_ap() local
671 patch = __load_ucode_intel(&uci); in load_ucode_intel_ap()
678 uci.mc = *iup; in load_ucode_intel_ap()
680 if (apply_microcode_early(&uci, true)) { in load_ucode_intel_ap()
688 static struct microcode_intel *find_patch(struct ucode_cpu_info *uci) in find_patch() argument
697 if (phdr->rev <= uci->cpu_sig.rev) in find_patch()
701 uci->cpu_sig.sig, in find_patch()
702 uci->cpu_sig.pf)) in find_patch()
713 struct ucode_cpu_info uci; in reload_ucode_intel() local
715 collect_cpu_info_early(&uci); in reload_ucode_intel()
717 p = find_patch(&uci); in reload_ucode_intel()
721 uci.mc = p; in reload_ucode_intel()
723 apply_microcode_early(&uci, false); in reload_ucode_intel()
756 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; in apply_microcode_intel() local
769 mc = find_patch(uci); in apply_microcode_intel()
771 mc = uci->mc; in apply_microcode_intel()
816 uci->cpu_sig.rev = rev; in apply_microcode_intel()
828 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; in generic_load_microcode() local
831 int new_rev = uci->cpu_sig.rev; in generic_load_microcode()
872 csig = uci->cpu_sig.sig; in generic_load_microcode()
873 cpf = uci->cpu_sig.pf; in generic_load_microcode()
894 vfree(uci->mc); in generic_load_microcode()
895 uci->mc = (struct microcode_intel *)new_mc; in generic_load_microcode()
902 save_mc_for_early(uci, new_mc, new_mc_size); in generic_load_microcode()
905 cpu, new_rev, uci->cpu_sig.rev); in generic_load_microcode()