[Bug 221621] Ryzen Threadripper - hwpstate0 - repeated set frequency failed err 6

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Aug 19 06:42:44 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221621

Conrad Meyer <cem at freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|freebsd-bugs at FreeBSD.org    |cem at freebsd.org

--- Comment #3 from Conrad Meyer <cem at freebsd.org> ---
Please try the following patch:

--- a/sys/x86/cpufreq/hwpstate.c
+++ b/sys/x86/cpufreq/hwpstate.c
@@ -83,6 +83,10 @@ __FBSDID("$FreeBSD$");
 #define        AMD_10H_11H_CUR_DID(msr)                (((msr) >> 6) & 0x07)
 #define        AMD_10H_11H_CUR_FID(msr)                ((msr) & 0x3F)

+#define        AMD_17H_CUR_VID(msr)                    (((msr) >> 14) & 0xFF)
+#define        AMD_17H_CUR_DID(msr)                    (((msr) >> 8) & 0x3F)
+#define        AMD_17H_CUR_FID(msr)                    ((msr) & 0xFF)
+
 #define        HWPSTATE_DEBUG(dev, msg...)                     \
        do{                                             \
                if(hwpstate_verbose)                    \
@@ -427,6 +431,15 @@ hwpstate_get_info_from_msr(device_t dev)
                case 0x16:
                        hwpstate_set[i].freq = (100 * (fid + 0x10)) >> did;
                        break;
+               case 0x17:
+                       did = AMD_17H_CUR_DID(msr);
+                       if (did == 0) {
+                               HWPSTATE_DEBUG(dev, "unexpected did: 0\n");
+                               did = 1;
+                       }
+                       fid = AMD_17H_CUR_FID(msr);
+                       hwpstate_set[i].freq = (200 * fid) / did;
+                       break;
                default:
                        HWPSTATE_DEBUG(dev, "get_info_from_msr: AMD family"
                            " 0x%02x CPUs are not supported yet\n", family);

It is based on the Family 17h Reference manual and compiles, but obviously I am
unable to test it.

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


More information about the freebsd-bugs mailing list