Author: sbruno
Date: Tue Jun 12 18:58:56 2018
New Revision: 335010
URL: https://svnweb.freebsd.org/changeset/base/335010

Log:
  cpucontrol:
  - fix debugging for family on AMD cpus and add useful debugging for
    which file is being selected for update.
  
  Reviewed by:  cem
  Sponsored by: Limelight Networks
  Differential Revision:        https://reviews.freebsd.org/D15574

Modified:
  head/usr.sbin/cpucontrol/amd10h.c

Modified: head/usr.sbin/cpucontrol/amd10h.c
==============================================================================
--- head/usr.sbin/cpucontrol/amd10h.c   Tue Jun 12 18:42:41 2018        
(r335009)
+++ head/usr.sbin/cpucontrol/amd10h.c   Tue Jun 12 18:58:56 2018        
(r335010)
@@ -139,7 +139,8 @@ amd10h_update(const char *dev, const char *path)
 
        WARNX(1, "found cpu family %#x model %#x "
            "stepping %#x extfamily %#x extmodel %#x.",
-           (signature >> 8) & 0x0f, (signature >> 4) & 0x0f,
+           ((signature >> 8) & 0x0f) + ((signature >> 20) & 0xff),
+           (signature >> 4) & 0x0f,
            (signature >> 0) & 0x0f, (signature >> 20) & 0xff,
            (signature >> 16) & 0x0f);
        WARNX(1, "microcode revision %#x", revision);
@@ -147,6 +148,7 @@ amd10h_update(const char *dev, const char *path)
        /*
         * Open the firmware file.
         */
+       WARNX(1, "checking %s for update.", path);
        fd = open(path, O_RDONLY, 0);
        if (fd < 0) {
                WARN(0, "open(%s)", path);
@@ -215,7 +217,9 @@ amd10h_update(const char *dev, const char *path)
        for (i = 0; equiv_cpu_table[i].installed_cpu != 0; i++) {
                if (signature == equiv_cpu_table[i].installed_cpu) {
                        equiv_id = equiv_cpu_table[i].equiv_cpu;
-                       WARNX(3, "equiv_id: %x", equiv_id);
+                       WARNX(3, "equiv_id: %x, signature %8x,"
+                           " equiv_cpu_table[%d] %8x", equiv_id, signature,
+                           i, equiv_cpu_table[i].installed_cpu);
                        break;
                }
        }
@@ -249,10 +253,16 @@ amd10h_update(const char *dev, const char *path)
                fw_data += section_header->size;
                fw_size -= section_header->size;
 
-               if (fw_header->processor_rev_id != equiv_id)
+               if (fw_header->processor_rev_id != equiv_id) {
+                       WARNX(1, "firmware processort_rev_id %x, equiv_id %x",
+                           fw_header->processor_rev_id, equiv_id);
                        continue; /* different cpu */
-               if (fw_header->patch_id <= revision)
+               }
+               if (fw_header->patch_id <= revision) {
+                       WARNX(1, "patch_id %x, revision %x",
+                           fw_header->patch_id, revision);
                        continue; /* not newer revision */
+               }
                if (fw_header->nb_dev_id != 0 || fw_header->sb_dev_id != 0) {
                        WARNX(2, "Chipset-specific microcode is not supported");
                }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to