Lines Matching refs:mpf
453 static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) in check_physptr() argument
458 size = get_mpc_size(mpf->physptr); in check_physptr()
459 mpc = early_ioremap(mpf->physptr, size); in check_physptr()
506 struct mpf_intel *mpf = mpf_found; in default_get_smp_config() local
508 if (!mpf) in default_get_smp_config()
522 mpf->specification); in default_get_smp_config()
524 if (mpf->feature2 & (1 << 7)) { in default_get_smp_config()
535 if (mpf->feature1 != 0) { in default_get_smp_config()
544 pr_info("Default MP configuration #%d\n", mpf->feature1); in default_get_smp_config()
545 construct_default_ISA_mptable(mpf->feature1); in default_get_smp_config()
547 } else if (mpf->physptr) { in default_get_smp_config()
548 if (check_physptr(mpf, early)) in default_get_smp_config()
560 static void __init smp_reserve_memory(struct mpf_intel *mpf) in smp_reserve_memory() argument
562 memblock_reserve(mpf->physptr, get_mpc_size(mpf->physptr)); in smp_reserve_memory()
568 struct mpf_intel *mpf; in smp_scan_config() local
573 BUILD_BUG_ON(sizeof(*mpf) != 16); in smp_scan_config()
576 mpf = (struct mpf_intel *)bp; in smp_scan_config()
578 (mpf->length == 1) && in smp_scan_config()
580 ((mpf->specification == 1) in smp_scan_config()
581 || (mpf->specification == 4))) { in smp_scan_config()
585 mpf_found = mpf; in smp_scan_config()
588 (unsigned long long) virt_to_phys(mpf), in smp_scan_config()
589 (unsigned long long) virt_to_phys(mpf) + in smp_scan_config()
590 sizeof(*mpf) - 1, mpf); in smp_scan_config()
592 mem = virt_to_phys(mpf); in smp_scan_config()
593 memblock_reserve(mem, sizeof(*mpf)); in smp_scan_config()
594 if (mpf->physptr) in smp_scan_config()
595 smp_reserve_memory(mpf); in smp_scan_config()
842 struct mpf_intel *mpf; in update_mp_table() local
848 mpf = mpf_found; in update_mp_table()
849 if (!mpf) in update_mp_table()
855 if (mpf->feature1 != 0) in update_mp_table()
858 if (!mpf->physptr) in update_mp_table()
861 mpc = phys_to_virt(mpf->physptr); in update_mp_table()
866 pr_info("mpf: %llx\n", (u64)virt_to_phys(mpf)); in update_mp_table()
867 pr_info("physptr: %x\n", mpf->physptr); in update_mp_table()
888 mpf->physptr = mpc_new_phys; in update_mp_table()
893 if (mpc_new_phys - mpf->physptr) { in update_mp_table()
898 memcpy(mpf_new, mpf, 16); in update_mp_table()
899 mpf = mpf_new; in update_mp_table()
900 mpf->physptr = mpc_new_phys; in update_mp_table()
902 mpf->checksum = 0; in update_mp_table()
903 mpf->checksum -= mpf_checksum((unsigned char *)mpf, 16); in update_mp_table()
904 pr_info("physptr new: %x\n", mpf->physptr); in update_mp_table()