From: "Theo de Raadt" <dera...@openbsd.org> Date: Sun, 25 Sep 2022 18:29:12 -0600
> This is not helping. > > Please send Scott private replies regarding his diff. Oh, sorry. I will reply to Scott privately. -- ASOU Masato > Masato Asou <a...@soum.co.jp> wrote: > >> Hi, >> >> I have new AMD laptop. The dmesg is posted below: >> >> OpenBSD 7.2 (GENERIC.MP) #2: Mon Sep 26 09:09:17 JST 2022 >> a...@hp-obsd.my.domain:/usr/src/sys/arch/amd64/compile/GENERIC.MP >> real mem = 7844245504 (7480MB) >> avail mem = 7589105664 (7237MB) >> random: good seed from bootblocks >> mpath0 at root >> scsibus0 at mpath0: 256 targets >> mainbus0 at root >> bios0 at mainbus0: SMBIOS rev. 3.3 @ 0xbc55d000 (35 entries) >> bios0: vendor AMI version "F.05" date 06/15/2022 >> bios0: HP HP Laptop 14s-fq2xxx >> acpi0 at bios0: ACPI 6.2Undefined scope: \\_SB_.PCI0.28 >> >> acpi0: sleep states S0 S4 S5 >> acpi0: tables DSDT FACP MSDM SSDT IVRS SSDT FIDT MCFG HPET VFCT SSDT TPM2 >> SSDT CRAT CDIT SSDT SSDT SSDT SSDT SSDT SSDT SSDT WSMT APIC SSDT SSDT SSDT >> SSDT SSDT SSDT FPDT BGRT >> acpi0: wakeup devices GPP1(S4) GP17(S4) GPP0(S4) >> acpitimer0 at acpi0: 3579545 Hz, 32 bits >> acpimcfg0 at acpi0 >> acpimcfg0: addr 0xf0000000, bus 0-127 >> acpihpet0 at acpi0: 14318180 Hz >> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat >> cpu0 at mainbus0: apid 0 (boot processor) >> cpu0: MSR C001_0064: en 1 base 200000000 mul 92 div 8 freq 2300000000 Hz >> cpu0: MSR C001_0065: en 1 base 200000000 mul 90 div 10 freq 1800000000 Hz >> cpu0: MSR C001_0066: en 1 base 200000000 mul 96 div 12 freq 1600000000 Hz >> cpu0: MSR C001_0067: en 0 >> cpu0: MSR C001_0068: en 0 >> cpu0: MSR C001_0069: en 0 >> cpu0: MSR C001_006A: en 0 >> cpu0: MSR C001_006B: en 0 >> cpu0: AMD Ryzen 5 5625U with Radeon Graphics, 2295.73 MHz, 19-50-00 >> cpu0: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> tsc: calibrating with acpihpet0: 2295691309 Hz >> cpu0: smt 0, core 0, package 0 >> mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges >> cpu0: apic clock running at 99MHz >> cpu0: mwait min=64, max=64, C-substates=1.1, IBE >> cpu1 at mainbus0: apid 1 (application processor) >> cpu1: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu1: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu1: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu1: smt 1, core 0, package 0 >> cpu2 at mainbus0: apid 2 (application processor) >> cpu2: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu2: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu2: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu2: smt 0, core 1, package 0 >> cpu3 at mainbus0: apid 3 (application processor) >> cpu3: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu3: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu3: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu3: smt 1, core 1, package 0 >> cpu4 at mainbus0: apid 4 (application processor) >> cpu4: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu4: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu4: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu4: smt 0, core 2, package 0 >> cpu5 at mainbus0: apid 5 (application processor) >> cpu5: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu5: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu5: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu5: smt 1, core 2, package 0 >> cpu6 at mainbus0: apid 6 (application processor) >> cpu6: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu6: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu6: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu6: smt 0, core 3, package 0 >> cpu7 at mainbus0: apid 7 (application processor) >> cpu7: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu7: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu7: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu7: smt 1, core 3, package 0 >> cpu8 at mainbus0: apid 8 (application processor) >> cpu8: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu8: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu8: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu8: smt 0, core 4, package 0 >> cpu9 at mainbus0: apid 9 (application processor) >> cpu9: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu9: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu9: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu9: smt 1, core 4, package 0 >> cpu10 at mainbus0: apid 10 (application processor) >> cpu10: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu10: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu10: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu10: smt 0, core 5, package 0 >> cpu11 at mainbus0: apid 11 (application processor) >> cpu11: AMD Ryzen 5 5625U with Radeon Graphics, 2295.69 MHz, 19-50-00 >> cpu11: >> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA,UMIP,PKU,IBPB,IBRS,STIBP,SSBD,XSAVEOPT,XSAVEC,XGETBV1,XSAVES >> cpu11: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB >> 64b/line 8-way L2 cache, 16MB 64b/line 16-way L3 cache >> cpu11: smt 1, core 5, package 0 >> ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap >> ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap >> acpiprt0 at acpi0: bus 0 (PCI0) >> acpiprt1 at acpi0: bus -1 (GPP1) >> acpiprt2 at acpi0: bus 1 (GPP4) >> acpiprt3 at acpi0: bus -1 (GPP5) >> acpiprt4 at acpi0: bus 3 (GP17) >> acpiprt5 at acpi0: bus -1 (GP18) >> acpiprt6 at acpi0: bus -1 (GP19) >> acpiprt7 at acpi0: bus 2 (GPP6) >> acpiprt8 at acpi0: bus -1 (GPP0) >> acpiprt9 at acpi0: bus -1 (BR32) >> acpiprt10 at acpi0: bus -1 (BR33) >> acpiec0 at acpi0 >> acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000 >> acpicmos0 at acpi0 >> "HPIC0003" at acpi0 not configured >> acpibtn0 at acpi0: PWRB >> "ACPI0010" at acpi0 not configured >> acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu1 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu2 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu3 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu4 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu5 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu6 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu7 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu8 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu9 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu10 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu11 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS >> acpicpu12 at acpi0: no cpu matching ACPI ID 13 >> acpicpu13 at acpi0: no cpu matching ACPI ID 14 >> acpicpu14 at acpi0: no cpu matching ACPI ID 15 >> acpicpu15 at acpi0: no cpu matching ACPI ID 16 >> amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins >> dwiic0 at acpi0 I2CA addr 0xfedc2000/0x1000 irq 10 >> iic0 at dwiic0 >> dwiic1 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6 >> iic1 at dwiic1 >> ihidev0 at iic1 addr 0x2c gpio 9, vendor 0x6cb product 0xcd50, SYNA32C2 >> ihidev0: 31 report ids >> imt0 at ihidev0: clickpad, 5 contacts >> wsmouse0 at imt0 mux 0 >> ims0 at ihidev0 reportid 2: 2 buttons >> wsmouse1 at ims0 mux 0 >> hid at ihidev0 reportid 6 not configured >> hid at ihidev0 reportid 7 not configured >> hid at ihidev0 reportid 9 not configured >> hid at ihidev0 reportid 10 not configured >> hid at ihidev0 reportid 11 not configured >> hid at ihidev0 reportid 12 not configured >> hid at ihidev0 reportid 13 not configured >> hid at ihidev0 reportid 14 not configured >> hid at ihidev0 reportid 15 not configured >> hid at ihidev0 reportid 29 not configured >> hid at ihidev0 reportid 31 not configured >> tpm0 at acpi0 TPM_: unsupported TPM2 start method 2 >> "ACPI000E" at acpi0 not configured >> "PNP0C14" at acpi0 not configured >> acpibat0 at acpi0: BAT0 model "Primary" serial SerialNumber type LION oem >> "HP" >> acpiac0 at acpi0: AC unit online >> acpibtn1 at acpi0: LID_ >> "AMDI0051" at acpi0 not configured >> "AMDI0005" at acpi0 not configured >> "PNP0C14" at acpi0 not configured >> acpipwrres0 at acpi0: PRBT >> acpipwrres1 at acpi0: P0U0, resource for XHC0 >> acpipwrres2 at acpi0: P3U0, resource for XHC0 >> acpipwrres3 at acpi0: P0U1, resource for XHC1 >> acpipwrres4 at acpi0: P3U1, resource for XHC1 >> acpipwrres5 at acpi0: P0SA, resource for SATA >> acpipwrres6 at acpi0: P0SA, resource for SAT1 >> acpipwrres7 at acpi0: P0NV, resource for NVME >> acpipwrres8 at acpi0: PRWL >> acpipwrres9 at acpi0: PRWB >> acpitz0 at acpi0: critical temperature is 255 degC >> acpivideo0 at acpi0: VGA_ >> acpivout0 at acpivideo0: LCD_ >> acpivideo1 at acpi0: VGA_ >> cpu0: 2295 MHz: speeds: 2300 1800 1600 MHz >> pci0 at mainbus0 bus 0 >> ksmn0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00 >> "AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured >> pchb0 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00 >> pchb1 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00 >> ppb0 at pci0 dev 2 function 2 "AMD 17h/6xh PCIE" rev 0x00: msi >> pci1 at ppb0 bus 1 >> vendor "Realtek", unknown product 0xb852 (class network subclass >> miscellaneous, rev 0x00) at pci1 dev 0 function 0 not configured >> ppb1 at pci0 dev 2 function 4 "AMD 17h/6xh PCIE" rev 0x00: msi >> pci2 at ppb1 bus 2 >> nvme0 at pci2 dev 0 function 0 "Kioxia BG4" rev 0x00: msix, NVMe 1.3 >> nvme0: KBG40ZNV256G KIOXIA, firmware HP01AE00, serial 528PGJ57QX74 >> scsibus1 at nvme0: 2 targets, initiator 0 >> sd0 at scsibus1 targ 1 lun 0: <NVMe, KBG40ZNV256G KIO, HP01> >> sd0: 244198MB, 512 bytes/sector, 500118192 sectors >> pchb2 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00 >> ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00 >> pci3 at ppb2 bus 3 >> amdgpu0 at pci3 dev 0 function 0 "ATI Barcelo" rev 0xc2 >> drm0 at amdgpu0 >> amdgpu0: msi >> azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi >> azalia0: no supported codecs >> ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00 >> xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10 >> usb0 at xhci0: USB revision 3.0 >> uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 >> addr 1 >> xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msi, xHCI 1.10 >> usb1 at xhci1: USB revision 3.0 >> uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 >> addr 1 >> "AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured >> azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 34 >> int 12 >> azalia1: codecs: Realtek ALC236 >> audio0 at azalia1 >> piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: polling >> iic2 at piixpm0 >> iic3 at piixpm0 >> pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51 >> pchb3 at pci0 dev 24 function 0 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb4 at pci0 dev 24 function 1 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb5 at pci0 dev 24 function 2 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb6 at pci0 dev 24 function 3 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb7 at pci0 dev 24 function 4 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb8 at pci0 dev 24 function 5 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb9 at pci0 dev 24 function 6 "AMD 19h/5xh Data Fabric" rev 0x00 >> pchb10 at pci0 dev 24 function 7 "AMD 19h/5xh Data Fabric" rev 0x00 >> isa0 at pcib0 >> isadma0 at isa0 >> pckbc0 at isa0 port 0x60/5 irq 1 irq 12 >> pckbd0 at pckbc0 (kbd slot) >> wskbd0 at pckbd0: console keyboard >> pms0 at pckbc0 (aux slot) >> wsmouse2 at pms0 mux 0 >> pms0: Synaptics clickpad, firmware 10.16, 0x1e2a1 0x840300 0x365040 0xf00923 >> 0x12e800 >> pcppi0 at isa0 port 0x61 >> spkr0 at pcppi0 >> vmm0 at mainbus0: SVM/RVI >> efifb at mainbus0 not configured >> uvideo0 at uhub0 port 3 configuration 1 interface 0 "DMWCR0AG4GE2IE HP >> TrueVision HD Camera" rev 2.01/0.03 addr 2 >> video0 at uvideo0 >> ugen0 at uhub0 port 3 configuration 1 "DMWCR0AG4GE2IE HP TrueVision HD >> Camera" rev 2.01/0.03 addr 2 >> ugen1 at uhub0 port 4 "Realtek Bluetooth Radio" rev 1.00/0.00 addr 3 >> umass0 at uhub0 port 6 configuration 1 interface 0 "JMicron External" rev >> 3.20/2.04 addr 4 >> umass0: using SCSI over Bulk-Only >> scsibus2 at umass0: 2 targets, initiator 0 >> sd1 at scsibus2 targ 1 lun 0: <JMicron, Tech, 0204> >> serial.152d0562D56419883893 >> sd1: 953869MB, 512 bytes/sector, 1953525168 sectors >> axe0 at uhub1 port 2 configuration 1 interface 0 "ASIX Electronics AX88772" >> rev 2.00/0.01 addr 2 >> axe0: AX88772, address 00:90:cc:e8:15:5b >> ukphy0 at axe0 phy 16: Generic IEEE 802.3u media interface, rev. 1: OUI >> 0x000ec6, model 0x0001 >> ugen2 at uhub1 port 4 "ELAN ELAN:ARM-M4" rev 2.00/2.81 addr 3 >> vscsi0 at root >> scsibus3 at vscsi0: 256 targets >> softraid0 at root >> scsibus4 at softraid0: 256 targets >> root on sd1a (492957bfc38a2933.a) swap on sd1b dump on sd1b >> amdgpu0: GREEN_SARDINE 7 CU rev 0x00 >> amdgpu0: 1920x1080, 32bpp >> wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0 >> wsdisplay0: screen 1-5 added (std, vt100 emulation) >> >> -- >> ASOU Masato >> >> From: Scott Cheloha <scottchel...@gmail.com> >> Date: Fri, 23 Sep 2022 09:16:25 -0500 >> >> > Hi, >> > >> > TL;DR: >> > >> > I want to compute the TSC frequency on AMD CPUs using the methods laid >> > out in the AMD manuals instead of calibrating the TSC by hand. >> > >> > If you have an AMD CPU with an invariant TSC, please apply this patch, >> > recompile/boot the resulting kernel, and send me the resulting dmesg. >> > >> > Family 10h-16h CPUs are especially interesting. If you've got one, >> > don't be shy! >> > >> > Long explanation: >> > >> > On AMD CPUs we calibrate the TSC with a separate timer. This is slow >> > and introduces error. I also worry about a future where legacy timers >> > are absent or heavily gated (read: useless). >> > >> > This patch adds most of the code needed to compute the TSC frequency >> > on AMD family 10h+ CPUs. CPUs prior to family 10h did not support an >> > invariant TSC so they are irrelevant. >> > >> > I have riddled the code with printf(9) calls so I can work out what's >> > wrong by hand if a test result makes no sense. >> > >> > The only missing piece is code to read the configuration space on >> > family 10h-16h CPUs to determine how many boosted P-states we need to >> > skip to get to the MSR describing the software P0 state. I would >> > really appreciate it if someone could explain how to do this at this >> > very early point in boot. jsg@ pointed me to pci_conf_read(9), but >> > I'm a little confused about how I get the needed pci* inputs at this >> > point in boot. >> > >> > -- >> > >> > Test results? Clues on reading the configuration space? >> > >> > -Scott >> > >> > Index: tsc.c >> > =================================================================== >> > RCS file: /cvs/src/sys/arch/amd64/amd64/tsc.c,v >> > retrieving revision 1.29 >> > diff -u -p -r1.29 tsc.c >> > --- tsc.c 22 Sep 2022 04:57:08 -0000 1.29 >> > +++ tsc.c 23 Sep 2022 14:04:22 -0000 >> > @@ -100,6 +100,253 @@ tsc_freq_cpuid(struct cpu_info *ci) >> > return (0); >> > } >> > >> > +uint64_t >> > +tsc_freq_msr(struct cpu_info *ci) >> > +{ >> > + uint64_t base, def, did, did_lsd, did_msd, divisor, fid, multiplier; >> > + uint32_t msr, off = 0; >> > + >> > + if (strcmp(cpu_vendor, "AuthenticAMD") != 0) >> > + return 0; >> > + >> > + /* >> > + * All family 10h+ CPUs have MSR_HWCR and the TscFreqSel bit. >> > + * If TscFreqSel is not set the TSC does not advance at the P0 >> > + * frequency, in which case something is wrong and we need to >> > + * calibrate by hand. >> > + */ >> > +#define HWCR_TSCFREQSEL (1 << 24) >> > + if (!ISSET(rdmsr(MSR_HWCR), HWCR_TSCFREQSEL)) /* XXX specialreg.h */ >> > + return 0; >> > +#undef HWCR_TSCFREQSEL >> > + >> > + /* >> > + * For families 10h, 12h, 14h, 15h, and 16h, we need to skip past >> > + * the boosted P-states (Pb0, Pb1, etc.) to find the MSR describing >> > + * P0, i.e. the highest performance unboosted P-state. The number >> > + * of boosted states is kept in the "Core Performance Boost Control" >> > + * configuration space register. >> > + */ >> > +#ifdef __not_yet__ >> > + uint32_t reg; >> > + switch (ci->ci_family) { >> > + case 0x10: >> > + /* XXX How do I read config space at this point in boot? */ >> > + reg = read_config_space(F4x15C); >> > + off = (reg >> 2) & 0x1; >> > + break; >> > + case 0x12: >> > + case 0x14: >> > + case 0x15: >> > + case 0x16: >> > + /* XXX How do I read config space at this point in boot? */ >> > + reg = read_config_space(D18F4x15C); >> > + off = (reg >> 2) & 0x7; >> > + break; >> > + default: >> > + break; >> > + } >> > +#endif >> > + >> > +/* DEBUG Let's look at all the MSRs to check my math. */ >> > +for (; off < 8; off++) { >> > + >> > + /* >> > + * In family 10h+, core P-state voltage/frequency definitions >> > + * are kept in MSRs C001_006[4:B] (eight registers in total). >> > + * All MSRs in the range are readable, but if the EN bit isn't >> > + * set the register doesn't define a valid P-state. >> > + */ >> > + msr = 0xc0010064 + off; /* XXX specialreg.h */ >> > + def = rdmsr(msr); >> > + printf("%s: MSR %04X_%04X: en %d", >> > + ci->ci_dev->dv_xname, msr >> 16, msr & 0xffff, >> > + !!ISSET(def, 1ULL << 63)); >> > + if (!ISSET(def, 1ULL << 63)) { /* XXX specialreg.h */ >> > + printf("\n"); >> > + continue; >> > + } >> > + switch (ci->ci_family) { >> > + case 0x10: >> > + /* AMD Family 10h Processor BKDG, Rev 3.62, p. 429 */ >> > + base = 100000000; /* 100.0 MHz */ >> > + did = (def >> 6) & 0x7; >> > + divisor = 1ULL << did; >> > + fid = def & 0x1f; >> > + multiplier = fid + 0x10; >> > + printf(" base %llu did %llu div %llu fid %llu mul %llu", >> > + base, did, divisor, fid, multiplier); >> > + break; >> > + case 0x11: >> > + /* AMD Family 11h Processor BKDG, Rev 3.62, p. 236 */ >> > + base = 100000000; /* 100.0 MHz */ >> > + did = (def >> 6) & 0x7; >> > + divisor = 1ULL << did; >> > + fid = def & 0x1f; >> > + multiplier = fid + 0x8; >> > + printf(" base %llu did %llu div %llu fid %llu mul %llu", >> > + base, did, divisor, fid, multiplier); >> > + break; >> > + case 0x12: >> > + /* AMD Family 12h Processor BKDG, Rev 3.02, pp. 468-469 */ >> > + base = 100000000; /* 100.0 MHz */ >> > + fid = (def >> 4) & 0xf; >> > + multiplier = fid + 0x10; >> > + >> > + /* >> > + * A CpuDid of 1 maps to a divisor of 1.5. To simulate >> > + * this with integer math we use a divisor of 3 and double >> > + * the multiplier, as (X * 2 / 3) equals (X / 1.5). All >> > + * other CpuDid values map to to whole number divisors >> > + * or are reserved. >> > + */ >> > + did = def & 0xf; >> > + printf(" did %llu", did); >> > + if (did >= 8) { >> > + printf("(reserved)\n"); >> > + continue; /* reserved */ >> > + } >> > + if (did == 1) >> > + multiplier *= 2; >> > + uint64_t did_divisor[] = { 1, 3, 2, 3, 4, 6, 8, 12, 16 }; >> > + divisor = did_divisor[did]; >> > + printf(" div %llu base %llu fid %llu mul %llu", >> > + divisor, base, fid, multiplier); >> > + break; >> > + case 0x14: >> > + /* >> > + * BKDG for AMD Family 14h Models 00h-0Fh Processors, >> > + * Rev 3.13, pp. 428-429 >> > + * >> > + * Family 14h doesn't have CpuFid or CpuDid. Instead, >> > + * the CpuCOF divisor is derived from two new fields: >> > + * CpuDidMsd, the integral base, and CpuDidLsd, the >> > + * fractional multiplier. The formula for the divisor >> > + * varies with the magnitude of CpuDidMsd: >> > + * >> > + * CpuDidMsd <= 14: CpuDidMsd + 1 + (CpuDidLsd * 0.25) >> > + * CpuDidMsd >= 15: CpuDidMsd + 1 + ((CpuDidLsd & 0x10) * 0.25) >> > + * >> > + * CpuCOF is just (base / divisor), however we need to >> > + * multiply both sides by 100 to simulate fractional >> > + * division with integer math, e.g. (X * 100 / 125) is >> > + * equivalent to (X / 1.25). >> > + */ >> > +#if __not_yet__ >> > + /* XXX How do I read config space at this point in boot? */ >> > + reg = read_config_space(D18F3xD4); >> > + base = 100000000 * ((reg & 0x3f) + 0x10); >> > +#else >> > + base = 100000000; /* XXX guess 100.0 MHz for now... */ >> > +#endif >> > + multiplier = 100; >> > + did_msd = (def >> 4) & 0x19; >> > + printf(" msd %llu", did_msd); >> > + if (did_msd >= 27) { >> > + printf("(reserved)\n"); >> > + continue; /* XXX might be reserved? */ >> > + } >> > + did_lsd = def & 0xf; >> > + printf(" lsd %llu", did_lsd); >> > + if (did_lsd >= 4) { >> > + printf("(reserved)\n"); >> > + continue; /* reserved */ >> > + } >> > + if (did_msd >= 15) >> > + did_lsd &= 0x10; >> > + divisor = (did_msd + 1) * 100 + (did_lsd * 25); >> > + printf(" div %llu base %llu mul %llu", >> > + divisor, base, multiplier); >> > + break; >> > + case 0x15: >> > + /* >> > + * BKDG for AMD Family 15h [...]: >> > + * Models 00h-OFh Processors, Rev 3.14, pp. 569-571 >> > + * Models 10h-1Fh Processors, Rev 3.12, pp. 580-581 >> > + * Models 30h-3Fh Processors, Rev 3.06, pp. 634-636 >> > + * Models 60h-6Fh Processors, Rev 3.05, pp. 691-693 >> > + * Models 70h-7Fh Processors, Rev 3.09, pp. 655-656 >> > + */ >> > + base = 100000000; /* 100.0 Mhz */ >> > + did = (def >> 6) & 0x7; >> > + printf(" base %llu did %llu", base, did); >> > + if (did >= 0x5) { >> > + printf("(reserved)\n"); >> > + continue; /* reserved */ >> > + } >> > + divisor = 1ULL << did; >> > + >> > + /* >> > + * BKDG for AMD Family 15h Models 00h-0Fh, Rev 3.14, p. 571 >> > + * says that "CpuFid must be less than or equal to 2Fh." >> > + * No other BKDG for family 15h limits the range of CpuFid. >> > + */ >> > + fid = def & 0x3f; >> > + printf(" fid %llu", fid); >> > + if (ci->ci_model <= 0x0f && fid >= 0x30) { >> > + printf("(reserved)\n"); >> > + continue; /* reserved */ >> > + } >> > + multiplier = fid + 0x10; >> > + printf(" mul %llu div %llu", multiplier, divisor); >> > + break; >> > + case 0x16: >> > + /* >> > + * BKDG for AMD Family 16h [...]: >> > + * Models 00h-0Fh Processors, Rev 3.03, pp. 548-550 >> > + * Models 30h-3Fh Processors, Rev 3.06, pp. 610-612 >> > + */ >> > + base = 100000000; /* 100.0 MHz */ >> > + did = (def >> 6) & 0x7; >> > + printf(" did %llu", did); >> > + if (did >= 0x5) { >> > + printf("(reserved)\n"); >> > + continue; /* reserved */ >> > + } >> > + divisor = 1ULL << did; >> > + fid = def & 0x3f; >> > + multiplier = fid + 0x10; >> > + printf(" divisor %llu base %llu fid %llu mul %llu", >> > + divisor, base, fid, multiplier); >> > + break; >> > + case 0x17: >> > + /* >> > + * PPR for AMD Family 17h [...]: >> > + * Models 01h,08h B2, Rev 3.03, pp. 33, 139-140 >> > + * Model 18h B1, Rev 3.16, pp. 36, 143-144 >> > + * Model 60h A1, Rev 3.06, pp. 33, 155-157 >> > + * Model 71h B0, Rev 3.06, pp. 28, 150-151 >> > + * >> > + * OSRR for AMD Family 17h processors, >> > + * Models 00h-2Fh, Rev 3.03, pp. 130-131 >> > + */ >> > + base = 200000000; /* 200.0 MHz */ >> > + divisor = did = (def >> 8) & 0x3f; /* XXX reserved vals? */ >> > + multiplier = fid = def & 0xff; >> > + printf(" base %llu mul %llu div %llu", >> > + base, multiplier, divisor); >> > + break; >> > + case 0x19: >> > + /* >> > + * PPR for AMD Family 19h >> > + * Model 21h B0, Rev 3.05, pp. 33, 166-167 >> > + */ >> > + base = 200000000; /* 200.0 MHz */ >> > + divisor = did = (def >> 8) & 0x3f; /* XXX reserved vals? */ >> > + multiplier = fid = def & 0xff; >> > + printf(" base %llu mul %llu div %llu", >> > + base, multiplier, divisor); >> > + break; >> > + default: >> > + return 0; >> > + } >> > + printf(" freq %llu Hz\n", base * multiplier / divisor); >> > +} >> > +/* DEBUG for-loop ends here. */ >> > + >> > + return 0; >> > +} >> > + >> > void >> > tsc_identify(struct cpu_info *ci) >> > { >> > @@ -118,6 +365,8 @@ tsc_identify(struct cpu_info *ci) >> > tsc_is_invariant = 1; >> > >> > tsc_frequency = tsc_freq_cpuid(ci); >> > + if (tsc_frequency == 0) >> > + tsc_frequency = tsc_freq_msr(ci); >> > if (tsc_frequency > 0) >> > delay_init(tsc_delay, 5000); >> > } >> > @@ -170,6 +419,8 @@ measure_tsc_freq(struct timecounter *tc) >> > u_long s; >> > int delay_usec, i, err1, err2, usec, success = 0; >> > >> > + printf("tsc: calibrating with %s: ", tc->tc_name); >> > + >> > /* warmup the timers */ >> > for (i = 0; i < 3; i++) { >> > (void)tc->tc_get_timecount(tc); >> > @@ -202,6 +453,8 @@ measure_tsc_freq(struct timecounter *tc) >> > min_freq = MIN(min_freq, frequency); >> > success++; >> > } >> > + >> > + printf("%llu Hz\n", success > 1 ? min_freq : 0); >> > >> > return (success > 1 ? min_freq : 0); >> > } >> > >> >