Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Mar 2018 16:07:48 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 192487] cpucontrol uses unsafe procedure to detect current microcode version
Message-ID:  <bug-192487-8-YOKJN9us2Q@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-192487-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-192487-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D192487

Mitchell Horne <mhorne063@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mhorne063@gmail.com

--- Comment #2 from Mitchell Horne <mhorne063@gmail.com> ---
This procedure is not handled by either the cpucontrol or cpupdate utilities
but instead by the underlying driver cpuctl. Inspection of the cpuctl code
shows that this is being handled properly in the update_intel() function.

sys/dev/cpuctl/cpuctl.c starting at line 366:

  critical_enter();
  rdmsr_safe(MSR_BIOS_SIGN, &rev0); /* Get current microcode revision. */

  /*
   * Perform update.
   */
  wrmsr_safe(MSR_BIOS_UPDT_TRIG, (uintptr_t)(ptr));
  wrmsr_safe(MSR_BIOS_SIGN, 0);

  /*
   * Serialize instruction flow.=20=20=20=20=20=20=20=20
   */
  do_cpuid(0, tmp);
  critical_exit();
  rdmsr_safe(MSR_BIOS_SIGN, &rev1); /* Get new microcode revision. */

The section of the SDM mentioned defines a procedure to safely determine the
signature after a microcode update but it doesn't seem to be necessary to
perform it each time the MSR is queried.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-192487-8-YOKJN9us2Q>