Announcement

Collapse
No announcement yet.

AMD Publishes New Family 19h CPU Microcode

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • AMD Publishes New Family 19h CPU Microcode

    Phoronix: AMD Publishes New Family 19h CPU Microcode

    AMD on Friday upstreamed new Family 19h CPU microcode to linux-firmware.git...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Michael typo: On Friday an uodated Family 19h
    updated

    Comment


    • #3
      And this is why I hate microcode. No idea what's being installed into my CPU or why if the manufacturer doesn't tell the complete truth, needing insider knowledge of the child's workings to understand that truth, and no way to find out barring massive amounts of reverse-engineering.

      Comment


      • #4
        Just a reminder that the script at https://github.com/AMDESE/amd_ucode_..._ucode_info.py should be able to tell people who have zen3 or zen4 CPUs whether there is anything for their particular machine. Previous releases of AMD firmware have only applied to a few combinations of model and stepping.

        Comment


        • #5
          The update could be addressing the issue with the security mitigations on Zen 4.

          If the CPU implements it in microcode, and it has not been updated while the kernel code has seen several improvements in recent times, would this explain the disparity, and new benchmarks with the microcode updates might show this. It would not be surprising if during the launch of the Zen 4 work got rushed and a few short cuts were taken, which are only now being taken care of.

          Comment


          • #6
            I have a Ryzen 9 5900X (Zen 3) CPU and dmesg shows this:

            Code:
            [ 0.871482] microcode: CPU0: patch_level=0x0a201016
            /proc/cpuinfo has this:
            Code:
            ...
            cpu family      : 25
            model           : 33
            model name      : AMD Ryzen 9 5900X 12-Core Processor
            stepping        : 0
            microcode       : 0xa201016​
            ...
            Is this older than the change:

            Code:
            Microcode patches in microcode_amd_fam19h.bin:
            - Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001058 Length=5568 bytes
            - Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a001173 Length=5568 bytes
            - Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001229 Length=5568 bytes
            + Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001075 Length=5568 bytes
            + Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011a8 Length=5568 bytes
            + Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a00122e Length=5568 bytes
            ​
            Even after adding that firmware, the above doesn't change for me in dmesg. I have amd64-microcode package installed (Debian testing) and also updated the above manually in /usr/lib/firmware/amd-ucode re-running update-initramfs. Am I missing something?

            Also, I don't see model 33 in that change, only model 0x01. Or does it mean any model?
            Last edited by shmerl; 02 October 2022, 12:55 PM.

            Comment


            • #7
              Originally posted by shmerl View Post
              I have a Ryzen 9 5900X (Zen 3) CPU and dmesg shows this:

              Code:
              [ 0.871482] microcode: CPU0: patch_level=0x0a201016
              /proc/cpuinfo has this:
              Code:
              ...
              cpu family : 25
              model : 33
              model name : AMD Ryzen 9 5900X 12-Core Processor
              stepping : 0
              microcode : 0xa201016​
              ...
              Is this older than the change:

              Code:
              Microcode patches in microcode_amd_fam19h.bin:
              - Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001058 Length=5568 bytes
              - Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a001173 Length=5568 bytes
              - Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001229 Length=5568 bytes
              + Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001075 Length=5568 bytes
              + Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011a8 Length=5568 bytes
              + Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a00122e Length=5568 bytes
              ​
              Even after adding that firmware, the above doesn't change for me in dmesg. I have amd64-microcode package installed (Debian testing) and also updated the above manually in /usr/lib/firmware/amd-ucode re-running update-initramfs. Am I missing something?

              Also, I don't see model 33 in that change, only model 0x01. Or does it mean any model?
              The values are in hex, so your model is 0x21. Experience suggests that the items are for a specific model and specific stepping.

              Comment


              • #8
                Originally posted by zerothruster View Post

                The values are in hex, so your model is 0x21. Experience suggests that the items are for a specific model and specific stepping.
                Yeah, but I don't see anything for that model in this or previous changes. Does it mean there was no firmware published for it yet? And model 1 suspiciously looks like a placeholder value.

                Comment


                • #9
                  Originally posted by shmerl View Post

                  Yeah, but I don't see anything for that model in this or previous changes. Does it mean there was no firmware published for it yet? And model 1 suspiciously looks like a placeholder value.
                  It means the shipped firmware is up to date, nothing has caused AMD to issue new firmware for this particular CPU. AMD is different from intel, who regularly update firmare until they decide that a generation is too old to care about (that current point seems to be skylake for non-xeon)

                  The only info I can find is at https://en.wikichip.org/wiki/amd/cpuid - that and what people have said in the past about previous identified machines for zen/zen2 or zen3 suggests most CPUs do not ever get updates. I wasted a bit of time looking for details, and found an AMD document which appeared to only cover milan, although it said it was family 19, and which listed a lot of errata, most of which were "won't fix".

                  Comment


                  • #10
                    Originally posted by zerothruster View Post
                    The only info I can find is at https://en.wikichip.org/wiki/amd/cpuid - that and what people have said in the past about previous identified machines for zen/zen2 or zen3 suggests most CPUs do not ever get updates. I wasted a bit of time looking for details, and found an AMD document which appeared to only cover milan, although it said it was family 19, and which listed a lot of errata, most of which were "won't fix".
                    From that wiki, it looks like family 25 are all 19h, which would match that firmware. And it says that Ryzen 5000 series is "base model 0x1". So those firmware updates might as well be applicable, despite CPU saying it's model 33.

                    UPDATE:



                    Hmm, I think model 33 could mean this (if I understand the wiki correctly):

                    Code:
                    33 = 0b100001
                    So that means: 0010 0001

                    I.e. first four bits - extended model (0b0010 = 2). last four bits - base model (0b0001 = 1).

                    That kind of fits the change only listing base model (0x01).

                    So the question still applies, why wasn't the change picked up for me?
                    Last edited by shmerl; 02 October 2022, 04:40 PM.

                    Comment

                    Working...
                    X