Compare commits

..

6 Commits

7 changed files with 640 additions and 1532 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/linux-firmware-20230404.tar.xz SOURCES/linux-firmware-20241014.tar.xz

View File

@ -1 +1 @@
f584e174d59343652ceab6a8a4a2d929a8355efa SOURCES/linux-firmware-20230404.tar.xz 77ad156a0610acad88604225db4df5449e71a4eb SOURCES/linux-firmware-20241014.tar.xz

View File

@ -1,167 +0,0 @@
From 69143e8eca62a80b9791b8d358d1cc4c90e373c9 Mon Sep 17 00:00:00 2001
From: John Allen <john.allen@amd.com>
Date: Fri, 14 Apr 2023 16:13:58 +0000
Subject: [PATCH] linux-firmware: Update AMD cpu microcode
* Update AMD cpu microcode for processor family 17h
Key Name = AMD Microcode Signing Key (for signing microcode container files only)
Key ID = F328AE73
Key Fingerprint = FC7C 6C50 5DAF CC14 7183 57CA E4BE 5339 F328 AE73
Signed-off-by: John Allen <john.allen@amd.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
---
WHENCE | 2 +-
amd-ucode/README | 2 +-
amd-ucode/microcode_amd_fam17h.bin | Bin 9700 -> 9700 bytes
amd-ucode/microcode_amd_fam17h.bin.asc | 16 ++++++++--------
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/WHENCE b/WHENCE
index e7073606..68814918 100644
--- a/WHENCE
+++ b/WHENCE
@@ -3917,7 +3917,7 @@ Version: 2018-05-24
File: amd-ucode/microcode_amd_fam16h.bin
Version: 2014-10-28
File: amd-ucode/microcode_amd_fam17h.bin
-Version: 2022-04-08
+Version: 2023-04-13
File: amd-ucode/microcode_amd_fam19h.bin
Version: 2023-01-31
File: amd-ucode/README
diff --git a/amd-ucode/README b/amd-ucode/README
index 0adfde27..0d97f910 100644
--- a/amd-ucode/README
+++ b/amd-ucode/README
@@ -33,7 +33,7 @@ Microcode patches in microcode_amd_fam16h.bin:
Microcode patches in microcode_amd_fam17h.bin:
Family=0x17 Model=0x08 Stepping=0x02: Patch=0x0800820d Length=3200 bytes
Family=0x17 Model=0x01 Stepping=0x02: Patch=0x0800126e Length=3200 bytes
- Family=0x17 Model=0x31 Stepping=0x00: Patch=0x08301055 Length=3200 bytes
+ Family=0x17 Model=0x31 Stepping=0x00: Patch=0x08301072 Length=3200 bytes
Microcode patches in microcode_amd_fam19h.bin:
Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001078 Length=5568 bytes
diff --git a/amd-ucode/microcode_amd_fam17h.bin b/amd-ucode/microcode_amd_fam17h.bin
index dec3871929a36792a261578aa834e807b5bea77d..37d899cd534789e461a5cf3ad666fcd587b8ab93 100644
GIT binary patch
delta 2695
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
BMdttj
delta 2505
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
diff --git a/amd-ucode/microcode_amd_fam17h.bin.asc b/amd-ucode/microcode_amd_fam17h.bin.asc
index f5b1e4d7..27da52c8 100644
--- a/amd-ucode/microcode_amd_fam17h.bin.asc
+++ b/amd-ucode/microcode_amd_fam17h.bin.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmJQi+QACgkQ5L5TOfMo
-rnOMKAf/T14Ixwan/IPPOEZHhsB5reCrEWLM89hey7z3vn/h8RWLAfJnAQwTuv1A
-B18gOWwUQMNARsoeDQZnnDvIQBB4w/DpzAaoWBoPnUR8Ko9jdl8ou7aUwdJzYC4T
-h6+LeSmHGhQ/h7AIJWABplXJg+weYfQiDr9u/ulFsZdCvfBx+8USNp75HddVTXWr
-+SunY5MrUZKmQvj147fCojByYVGzNCkWHJe3V6obd19kubTT357QwUX8A7/ZwgYO
-8DlxoVbYg9X224/7Cck6dECE9jKbmaVJkmdMg6ACVirjDH5U/HAACYNwwcO2olPn
-BOxF9sZMYY9cl14WCj2R7WS+gEjYWA==
-=pSDv
+iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmQeEvgACgkQ5L5TOfMo
+rnPOpAf/dYhPqq/ktg1muI/khV4EhDiguX6OXib3fmfSZdvPIAI0cRI77M3Lvf0b
+nlV8D67e5HOQ5foJbix5tunz0sZjqr2QU8U9dNk/ut0KC7UiCRc8VH40aSi/OQBG
+Y8c7tb6IJ+N+jyJ6Ii6koUuRO2Lk2MckcrWLRuLRV4bB+osyJrGjc/X54Z6UJ/Ma
+VDg13Yxy5WvC7sMmlmnY42JLeLBKDVUvg0zDvJ4aOLLxRE2l3eiAKE+TV122LmxN
+ca5WA/ESYQ9BjxHYIrpTd9nQaWa/TIZ+rOmJGLMtnQ1gGlW97zQuJR7zh+8vdLzC
+iwVlS1cu7kcV7KYDytTkWJ+2gwb3uQ==
+=lP2S
-----END PGP SIGNATURE-----
--
2.27.0

View File

@ -1,588 +0,0 @@
From b250b32ab1d044953af2dc5e790819a7703b7ee6 Mon Sep 17 00:00:00 2001
From: John Allen <john.allen@amd.com>
Date: Tue, 18 Jul 2023 23:19:59 +0000
Subject: [PATCH] linux-firmware: Update AMD cpu microcode
* Update AMD cpu microcode for processor family 19h
Key Name = AMD Microcode Signing Key (for signing microcode container files only)
Key ID = F328AE73
Key Fingerprint = FC7C 6C50 5DAF CC14 7183 57CA E4BE 5339 F328 AE73
Signed-off-by: John Allen <john.allen@amd.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
---
WHENCE | 2 +-
amd-ucode/README | 6 +++---
amd-ucode/microcode_amd_fam19h.bin | Bin 16804 -> 16804 bytes
amd-ucode/microcode_amd_fam19h.bin.asc | 16 ++++++++--------
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/WHENCE b/WHENCE
index de23a75e..b92e5299 100644
--- a/WHENCE
+++ b/WHENCE
@@ -3912,6 +3912,6 @@ Raw: amd-ucode/microcode_amd_fam17h.bin
Version: 2023-04-13
File: amd-ucode/microcode_amd_fam19h.bin
-Version: 2023-01-31
+Version: 2023-07-18
File: amd-ucode/README
License: Redistributable. See LICENSE.amd-ucode for details
diff --git a/amd-ucode/README b/amd-ucode/README
index 0d97f910..4308fe2d 100644
--- a/amd-ucode/README
+++ b/amd-ucode/README
@@ -36,6 +36,6 @@ Microcode patches in microcode_amd_fam17h.bin:
Family=0x17 Model=0x31 Stepping=0x00: Patch=0x08301072 Length=3200 bytes
Microcode patches in microcode_amd_fam19h.bin:
- Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001078 Length=5568 bytes
- Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011ce Length=5568 bytes
- Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001231 Length=5568 bytes
+ Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011d1 Length=5568 bytes
+ Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001079 Length=5568 bytes
+ Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001234 Length=5568 bytes
diff --git a/amd-ucode/microcode_amd_fam19h.bin b/amd-ucode/microcode_amd_fam19h.bin
index 4bd623e14006b3a2eeb287e52708d3bea1c3a728..50470c3f461a068e832a1ebe33683a041d4515fe 100644
GIT binary patch
literal 16804
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
M|2*#hA0GFA0Rm`VAOHXW
delta 15290
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
ME5Vz0z(fSb57uLE4*&oF
diff --git a/amd-ucode/microcode_amd_fam19h.bin.asc b/amd-ucode/microcode_amd_fam19h.bin.asc
index 7c5193cf..a32b4d61 100644
--- a/amd-ucode/microcode_amd_fam19h.bin.asc
+++ b/amd-ucode/microcode_amd_fam19h.bin.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmPS0gkACgkQ5L5TOfMo
-rnMWewf/SNlPcRuJ/RPEKThbPJyToBi98e7QLqlGkuIQ7sZBjZ/zZIycQDkQgjVV
-MpO8E2yxn0Pp/2T6IzGBLPWpMVgvCabIn2gRe3qvRbJ5dYnxU3I5hfCITGHG0z2K
-OgH3Z51aKZGX0fCRHKdrtVf9RMdcYcVHD9NU48q8x8gArdRg+IZSCPzqD3dNw7nT
-TS2WHNiMzyqXkkqqkroofljUSZcuMIqDDEsfIB9LDQjFCMYEththlC0m0wz1QIRv
-HJCJZ8p/E8xMPLEp0JvhA1zxBePlyKmKtHLxhslyvEePJif5fHECEx95Q2xYRS+F
-rMXPlWVgxXzeM1NUxEBDM8vI6gaXtQ==
-=+Rqf
+iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmS3F00ACgkQ5L5TOfMo
+rnNEhQgAizSV8IFpvaYNytaJKLA4uevrZneGPV4czjCXnnj1yHpfQmCTyZQnoLnx
+7gyzf7K5271zO51FBQ5z2Nm48a3XPUhMbQLNP4BZdekLiA3bRpMtSyHct6zD0ULm
+xaFaOQ7MR1tGADhlon1bDvtnOuixUhwrZhEIlR9MzQAzERKDMOAVTbxn9ZhMfYiT
+LhA791Blyyi+6Z9uh7BpaA8l8uvoxt+uuvlBTjQMR3ER/TEjgcsoy+XhhK4QKS0V
+wJCtcDle/3pF+N6SAFWiXbNZ+P8p19afhcYddDl97xtpzA6/8b20a2eHkrqnu/Ds
+jTozF9kmhiifYMYpXtXgSOwI3GRZbQ==
+=t+j1
-----END PGP SIGNATURE-----
--
2.27.0

View File

@ -1,241 +0,0 @@
From 0bc3126c9cfa0b8c761483215c25382f831a7c6f Mon Sep 17 00:00:00 2001
From: John Allen <john.allen@amd.com>
Date: Wed, 19 Jul 2023 19:17:57 +0000
Subject: [PATCH] linux-firmware: Update AMD fam17h cpu microcode
* Update AMD cpu microcode for processor family 17h
Key Name = AMD Microcode Signing Key (for signing microcode container files only)
Key ID = F328AE73
Key Fingerprint = FC7C 6C50 5DAF CC14 7183 57CA E4BE 5339 F328 AE73
Signed-off-by: John Allen <john.allen@amd.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
---
WHENCE | 2 +-
amd-ucode/README | 3 ++-
amd-ucode/microcode_amd_fam17h.bin | Bin 9700 -> 12924 bytes
amd-ucode/microcode_amd_fam17h.bin.asc | 16 ++++++++--------
4 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/WHENCE b/WHENCE
index b92e5299..dcb86fab 100644
--- a/WHENCE
+++ b/WHENCE
@@ -3909,5 +3909,5 @@ Raw: amd-ucode/microcode_amd_fam16h.bin
Version: 2014-10-28
File: amd-ucode/microcode_amd_fam17h.bin
-Version: 2023-04-13
+Version: 2023-07-19
File: amd-ucode/microcode_amd_fam19h.bin
Version: 2023-07-18
diff --git a/amd-ucode/README b/amd-ucode/README
index 4308fe2d..1d39da3b 100644
--- a/amd-ucode/README
+++ b/amd-ucode/README
@@ -32,8 +32,9 @@ Microcode patches in microcode_amd_fam16h.bin:
Microcode patches in microcode_amd_fam17h.bin:
Family=0x17 Model=0x08 Stepping=0x02: Patch=0x0800820d Length=3200 bytes
+ Family=0x17 Model=0x31 Stepping=0x00: Patch=0x0830107a Length=3200 bytes
+ Family=0x17 Model=0xa0 Stepping=0x00: Patch=0x08a00008 Length=3200 bytes
Family=0x17 Model=0x01 Stepping=0x02: Patch=0x0800126e Length=3200 bytes
- Family=0x17 Model=0x31 Stepping=0x00: Patch=0x08301072 Length=3200 bytes
Microcode patches in microcode_amd_fam19h.bin:
Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011d1 Length=5568 bytes
diff --git a/amd-ucode/microcode_amd_fam17h.bin b/amd-ucode/microcode_amd_fam17h.bin
index 37d899cd534789e461a5cf3ad666fcd587b8ab93..f9841b65b8d6ea156a402f45bba17f0e31eaf4ea 100644
GIT binary patch
delta 5515
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
F{{gHxepLVf
delta 2769
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
XI8~N^f?XgDZsTXPhi>+WOwD$}@;OgK
diff --git a/amd-ucode/microcode_amd_fam17h.bin.asc b/amd-ucode/microcode_amd_fam17h.bin.asc
index 27da52c8..34a40245 100644
--- a/amd-ucode/microcode_amd_fam17h.bin.asc
+++ b/amd-ucode/microcode_amd_fam17h.bin.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmQeEvgACgkQ5L5TOfMo
-rnPOpAf/dYhPqq/ktg1muI/khV4EhDiguX6OXib3fmfSZdvPIAI0cRI77M3Lvf0b
-nlV8D67e5HOQ5foJbix5tunz0sZjqr2QU8U9dNk/ut0KC7UiCRc8VH40aSi/OQBG
-Y8c7tb6IJ+N+jyJ6Ii6koUuRO2Lk2MckcrWLRuLRV4bB+osyJrGjc/X54Z6UJ/Ma
-VDg13Yxy5WvC7sMmlmnY42JLeLBKDVUvg0zDvJ4aOLLxRE2l3eiAKE+TV122LmxN
-ca5WA/ESYQ9BjxHYIrpTd9nQaWa/TIZ+rOmJGLMtnQ1gGlW97zQuJR7zh+8vdLzC
-iwVlS1cu7kcV7KYDytTkWJ+2gwb3uQ==
-=lP2S
+iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmS4Mm4ACgkQ5L5TOfMo
+rnN35wgAkllCunxE6J5hQyLMx5o4WTHZkbNvXmu6nV1Y3vjiL1oeaK+pmx8BlkPt
+fGZJCe/068kqmp3N4EtOZLxXn55t3jNBYectPr0RmFqpjMsEJEcfXfuXROA4N9Ti
+Zd/o6X21eHEsm0kK0q4YfppfgTd5Ze7k1jTkUuuU6/yh6uRk1MiFreEzkPO3Aayh
+iEWlYx33vq3HccTPgdY3D64Zr8gmgKG+8mdEvqb1jK4SVZ1/9vy4OKIIpUZB/eqx
+46h9Ejwn9pktnYkHi/A/zCREEcIQ10HXFF5bjxJTFQkM5S46/QEO7uuvnpMb+6Yy
+4V1/QIWMG6ixqCRx9GqbBK7GHdYODw==
+=+IsI
-----END PGP SIGNATURE-----
--
2.27.0

View File

@ -1,485 +0,0 @@
From f2eb058afc57348cde66852272d6bf11da1eef8f Mon Sep 17 00:00:00 2001
From: John Allen <john.allen@amd.com>
Date: Tue, 8 Aug 2023 19:02:39 +0000
Subject: [PATCH] linux-firmware: Update AMD cpu microcode
* Update AMD cpu microcode for processor family 19h
Key Name = AMD Microcode Signing Key (for signing microcode container files only)
Key ID = F328AE73
Key Fingerprint = FC7C 6C50 5DAF CC14 7183 57CA E4BE 5339 F328 AE73
Signed-off-by: John Allen <john.allen@amd.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
---
WHENCE | 2 +-
amd-ucode/README | 13 +++++++++++++
amd-ucode/microcode_amd_fam19h.bin | Bin 16804 -> 39172 bytes
amd-ucode/microcode_amd_fam19h.bin.asc | 16 ++++++++--------
4 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/WHENCE b/WHENCE
index 99cee970..54aadb0c 100644
--- a/WHENCE
+++ b/WHENCE
@@ -3924,6 +3924,6 @@ Raw: amd-ucode/microcode_amd_fam17h.bin
Version: 2023-07-19
File: amd-ucode/microcode_amd_fam19h.bin
-Version: 2023-07-18
+Version: 2023-08-08
File: amd-ucode/README
License: Redistributable. See LICENSE.amd-ucode for details
diff --git a/amd-ucode/README b/amd-ucode/README
index 1d39da3b..fac11524 100644
--- a/amd-ucode/README
+++ b/amd-ucode/README
@@ -37,6 +37,19 @@ Microcode patches in microcode_amd_fam17h.bin:
Family=0x17 Model=0x01 Stepping=0x02: Patch=0x0800126e Length=3200 bytes
Microcode patches in microcode_amd_fam19h.bin:
+ Family=0x19 Model=0x11 Stepping=0x01: Patch=0x0a10113e Length=5568 bytes
+ Family=0x19 Model=0x11 Stepping=0x02: Patch=0x0a10123e Length=5568 bytes
+ Family=0x19 Model=0xa0 Stepping=0x02: Patch=0x0aa00212 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011d1 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a001079 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001234 Length=5568 bytes
+ Family=0x19 Model=0xa0 Stepping=0x01: Patch=0x0aa00116 Length=5568 bytes
+
+NOTE: For Genoa (Family=0x19 Model=0x11) and Bergamo (Family=0x19 Model=0xa0),
+either AGESA version >= 1.0.0.8 OR a kernel with the following commit is
+required:
+a32b0f0db3f3 ("x86/microcode/AMD: Load late on both threads too")
+
+When late loading the patches for Genoa or Bergamo, there may be one spurious
+NMI observed per physical core. These NMIs are benign and don't cause any
+functional issue but will result in kernel messages being logged.
diff --git a/amd-ucode/microcode_amd_fam19h.bin b/amd-ucode/microcode_amd_fam19h.bin
index 50470c3f461a068e832a1ebe33683a041d4515fe..02a5d051d58b8028275ee6a0b091f11f8d1b6e27 100644
GIT binary patch
delta 20542
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
YVQu*TZ8nl?f%`zS*L1OeLEkX&JxSZWhyVZp
delta 28
hcmZqK#I&TDk;}!`kpTo87$#a7O{|gH{LazO5ddxw2oeAQ
diff --git a/amd-ucode/microcode_amd_fam19h.bin.asc b/amd-ucode/microcode_amd_fam19h.bin.asc
index a32b4d61..8cff9013 100644
--- a/amd-ucode/microcode_amd_fam19h.bin.asc
+++ b/amd-ucode/microcode_amd_fam19h.bin.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmS3F00ACgkQ5L5TOfMo
-rnNEhQgAizSV8IFpvaYNytaJKLA4uevrZneGPV4czjCXnnj1yHpfQmCTyZQnoLnx
-7gyzf7K5271zO51FBQ5z2Nm48a3XPUhMbQLNP4BZdekLiA3bRpMtSyHct6zD0ULm
-xaFaOQ7MR1tGADhlon1bDvtnOuixUhwrZhEIlR9MzQAzERKDMOAVTbxn9ZhMfYiT
-LhA791Blyyi+6Z9uh7BpaA8l8uvoxt+uuvlBTjQMR3ER/TEjgcsoy+XhhK4QKS0V
-wJCtcDle/3pF+N6SAFWiXbNZ+P8p19afhcYddDl97xtpzA6/8b20a2eHkrqnu/Ds
-jTozF9kmhiifYMYpXtXgSOwI3GRZbQ==
-=t+j1
+iQEzBAABCgAdFiEE/HxsUF2vzBRxg1fK5L5TOfMornMFAmTEYrcACgkQ5L5TOfMo
+rnN4IQf/QKbOezXZ4OYzaPANvsZQEAzLNfuylC/aQMwrPaO7daz5/zmCN4HU5XkH
+dDT8DYfPg+fQHIgxAw0/L24xPOm5Op/QuLVDyDqVr4qvL8+65eeI+JqxD/wXMXYN
+V34kkLM2p8iuyY1Nc8IDLXu4X75KGNPbKZlMRKMU3Pr7ai5O4ihmiAM+N6qv1KEJ
+YToNN6vrg0qt1cv0SLM8sa4e7L1+oblUrg/o0FViYE8pxsU3ZRRVSJMUg+lKjvl/
+1ZPGKOdD80fcNJ+ItYGHNNs3eCc3WgW7Kc/E668eH75Yu9Zt7ewWZX8Sg/mygleY
+OzMwhbPJg4bF4zm7C/Pku7i1T2Omcg==
+=km2X
-----END PGP SIGNATURE-----
--
2.27.0

View File

@ -1,13 +1,13 @@
%global checkout 2e92a49f %global checkout 06bad2f1
%global firmware_release 114 %global firmware_release 125
%global _firmwarepath /usr/lib/firmware %global _firmwarepath /usr/lib/firmware
%define _binaries_in_noarch_packages_terminate_build 0 %define _binaries_in_noarch_packages_terminate_build 0
Name: linux-firmware Name: linux-firmware
Version: 20230404 Version: 20241014
Release: %{firmware_release}.git%{checkout}%{?dist}.alma.1 Release: %{firmware_release}.git%{checkout}%{?dist}
Summary: Firmware files used by the Linux kernel Summary: Firmware files used by the Linux kernel
License: GPL+ and GPLv2+ and MIT and Redistributable, no modification permitted License: GPL+ and GPLv2+ and MIT and Redistributable, no modification permitted
URL: http://www.kernel.org/ URL: http://www.kernel.org/
@ -19,12 +19,6 @@ BuildArch: noarch
# 2) git archive --worktree-attributes --format=tar --prefix=linux-firmware-%%{checkout}/ %%{checkout} | xz > linux-firmware-%%{version}.tar.xz # 2) git archive --worktree-attributes --format=tar --prefix=linux-firmware-%%{checkout}/ %%{checkout} | xz > linux-firmware-%%{version}.tar.xz
Source0: %{name}-%{version}.tar.xz Source0: %{name}-%{version}.tar.xz
# AlmaLinux: AMD CPU ucode updates to fix CVE-2023-20593, CVE-2023-20569
Patch0: 0001-linux-firmware-Update-AMD-cpu-microcode.patch
Patch1: 0002-linux-firmware-Update-AMD-cpu-microcode.patch
Patch2: 0003-linux-firmware-Update-AMD-fam17h-cpu-microcode.patch
Patch3: 0004-linux-firmware-Update-AMD-cpu-microcode.patch
Provides: kernel-firmware = %{version} xorg-x11-drv-ati-firmware = 7.0 Provides: kernel-firmware = %{version} xorg-x11-drv-ati-firmware = 7.0
Obsoletes: kernel-firmware < %{version} xorg-x11-drv-ati-firmware < 6.13.0-0.22 Obsoletes: kernel-firmware < %{version} xorg-x11-drv-ati-firmware < 6.13.0-0.22
Obsoletes: ueagle-atm4-firmware < 1.0-5 Obsoletes: ueagle-atm4-firmware < 1.0-5
@ -46,7 +40,7 @@ Conflicts: microcode_ctl < 2.1-0
# avoid upgrade errors (see bug 1589055) # avoid upgrade errors (see bug 1589055)
Obsoletes: ivtv-firmware < 2:20080701-28 Obsoletes: ivtv-firmware < 2:20080701-28
BuildRequires: git make BuildRequires: git make python3
%description %description
This package includes firmware files required for some devices to This package includes firmware files required for some devices to
@ -56,7 +50,7 @@ operate.
Summary: Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters Summary: Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 39.31.5.1 Version: 39.31.5.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl100-firmware < 39.31.5.1-4 Obsoletes: iwl100-firmware < 39.31.5.1-4
%description -n iwl100-firmware %description -n iwl100-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -68,7 +62,7 @@ LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters Summary: Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
%description -n iwl105-firmware %description -n iwl105-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
for Linux to support the iwl105 hardware. Usage of the firmware for Linux to support the iwl105 hardware. Usage of the firmware
@ -79,7 +73,7 @@ LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters Summary: Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
%description -n iwl135-firmware %description -n iwl135-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
for Linux to support the iwl135 hardware. Usage of the firmware for Linux to support the iwl135 hardware. Usage of the firmware
@ -91,7 +85,7 @@ Summary: Firmware for Intel® PRO/Wireless 1000 B/G/N network adaptors
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 39.31.5.1 Version: 39.31.5.1
Epoch: 1 Epoch: 1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl1000-firmware < 1:39.31.5.1-3 Obsoletes: iwl1000-firmware < 1:39.31.5.1-3
%description -n iwl1000-firmware %description -n iwl1000-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -103,7 +97,7 @@ LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters Summary: Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
%description -n iwl2000-firmware %description -n iwl2000-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
for Linux to support the iwl2000 hardware. Usage of the firmware for Linux to support the iwl2000 hardware. Usage of the firmware
@ -114,7 +108,7 @@ LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters Summary: Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
%description -n iwl2030-firmware %description -n iwl2030-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
for Linux to support the iwl2030 hardware. Usage of the firmware for Linux to support the iwl2030 hardware. Usage of the firmware
@ -126,7 +120,7 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 3160 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Epoch: 1 Epoch: 1
Version: 25.30.13.0 Version: 25.30.13.0
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
%description -n iwl3160-firmware %description -n iwl3160-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
for Linux. Usage of the firmware is subject to the terms and conditions for Linux. Usage of the firmware is subject to the terms and conditions
@ -136,7 +130,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors Summary: Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 15.32.2.9 Version: 15.32.2.9
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl3945-firmware < 15.32.2.9-7 Obsoletes: iwl3945-firmware < 15.32.2.9-7
%description -n iwl3945-firmware %description -n iwl3945-firmware
This package contains the firmware required by the iwl3945 driver This package contains the firmware required by the iwl3945 driver
@ -147,7 +141,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors Summary: Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 228.61.2.24 Version: 228.61.2.24
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl4965-firmware < 228.61.2.24-5 Obsoletes: iwl4965-firmware < 228.61.2.24-5
%description -n iwl4965-firmware %description -n iwl4965-firmware
This package contains the firmware required by the iwl4965 driver This package contains the firmware required by the iwl4965 driver
@ -158,7 +152,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors Summary: Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 8.83.5.1_1 Version: 8.83.5.1_1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl5000-firmware < 8.83.5.1_1-3 Obsoletes: iwl5000-firmware < 8.83.5.1_1-3
%description -n iwl5000-firmware %description -n iwl5000-firmware
This package contains the firmware required by the iwl5000 driver This package contains the firmware required by the iwl5000 driver
@ -169,7 +163,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors Summary: Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 8.24.2.2 Version: 8.24.2.2
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl5150-firmware < 8.24.2.2-4 Obsoletes: iwl5150-firmware < 8.24.2.2-4
%description -n iwl5150-firmware %description -n iwl5150-firmware
This package contains the firmware required by the iwl5150 driver This package contains the firmware required by the iwl5150 driver
@ -180,7 +174,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter Summary: Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 9.221.4.1 Version: 9.221.4.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl6000-firmware < 9.221.4.1-4 Obsoletes: iwl6000-firmware < 9.221.4.1-4
%description -n iwl6000-firmware %description -n iwl6000-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -191,7 +185,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters Summary: Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl6000g2a-firmware < 17.168.5.3-3 Obsoletes: iwl6000g2a-firmware < 17.168.5.3-3
%description -n iwl6000g2a-firmware %description -n iwl6000g2a-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -202,7 +196,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters Summary: Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 18.168.6.1 Version: 18.168.6.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl6000g2b-firmware < 17.168.5.2-3 Obsoletes: iwl6000g2b-firmware < 17.168.5.2-3
%description -n iwl6000g2b-firmware %description -n iwl6000g2b-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -213,7 +207,7 @@ contained inside the provided LICENSE file. Please read it carefully.
Summary: Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters Summary: Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Version: 41.28.5.1 Version: 41.28.5.1
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
Obsoletes: iwl6050-firmware < 41.28.5.1-5 Obsoletes: iwl6050-firmware < 41.28.5.1-5
%description -n iwl6050-firmware %description -n iwl6050-firmware
This package contains the firmware required by the Intel wireless drivers This package contains the firmware required by the Intel wireless drivers
@ -225,7 +219,7 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 726x/8000/9000 Series Adapters
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
Epoch: 1 Epoch: 1
Version: 25.30.13.0 Version: 25.30.13.0
Release: %{firmware_release}%{?dist}.1.alma.1 Release: %{firmware_release}%{?dist}.1
# Obsolete iwl7265 sub-package which existed on RHEL 7, looking at git history # Obsolete iwl7265 sub-package which existed on RHEL 7, looking at git history
# Fedora never provided such sub-package (see bug 1589056) # Fedora never provided such sub-package (see bug 1589056)
Obsoletes: iwl7265-firmware Obsoletes: iwl7265-firmware
@ -263,26 +257,20 @@ License: Redistributable, no modification permitted
Firmware for Marvell Libertas SD 8787 Network Adapter Firmware for Marvell Libertas SD 8787 Network Adapter
%prep %prep
%setup -q -n linux-firmware-%{checkout} %autosetup -S git -p1 -n linux-firmware-%{checkout}
#if 0
git init .
if [ -z "$GIT_COMMITTER_NAME" ]; then
git config user.email "nobody@fedoraproject.org"
git config user.name "Fedora linux-firmware packagers"
fi
git add .
git commit -m init .
git am %{patches}
#endif
%build %build
%install %install
mkdir -p $RPM_BUILD_ROOT/%{_firmwarepath} mkdir -p $RPM_BUILD_ROOT/%{_firmwarepath}
mkdir -p $RPM_BUILD_ROOT/%{_firmwarepath}/updates mkdir -p $RPM_BUILD_ROOT/%{_firmwarepath}/updates
make DESTDIR=%{buildroot}/ FIRMWAREDIR=%{_firmwarepath} install
# Move amd-ucode readme to docs directory due to dracut issue (RHEL-16799)
mkdir -p %{buildroot}/%{_defaultdocdir}/%{name}/amd-ucode
mv -f amd-ucode/README %{buildroot}/%{_defaultdocdir}/%{name}/amd-ucode
# install-nodedup: just "install" requires rdfind
make DESTDIR=%{buildroot}/ FIRMWAREDIR=%{_firmwarepath} install-nodedup
pushd $RPM_BUILD_ROOT/%{_firmwarepath} pushd $RPM_BUILD_ROOT/%{_firmwarepath}
# Remove firmware shipped in separate packages already # Remove firmware shipped in separate packages already
@ -407,6 +395,12 @@ sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files
%{_firmwarepath}/iwlwifi-ty-a0-gf-a0*.pnvm %{_firmwarepath}/iwlwifi-ty-a0-gf-a0*.pnvm
%{_firmwarepath}/iwlwifi-so-a0-*.ucode %{_firmwarepath}/iwlwifi-so-a0-*.ucode
%{_firmwarepath}/iwlwifi-so-a0-*.pnvm %{_firmwarepath}/iwlwifi-so-a0-*.pnvm
%{_firmwarepath}/iwlwifi-bz-b0-*.ucode*
%{_firmwarepath}/iwlwifi-bz-b0-*.pnvm*
%{_firmwarepath}/iwlwifi-gl-*.ucode
%{_firmwarepath}/iwlwifi-gl-*.pnvm
%{_firmwarepath}/iwlwifi-ma-*.ucode
%{_firmwarepath}/iwlwifi-ma-*.pnvm
%files -n libertas-usb8388-firmware %files -n libertas-usb8388-firmware
%license WHENCE LICENCE.Marvell %license WHENCE LICENCE.Marvell
@ -430,15 +424,610 @@ sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files
%files -f linux-firmware.files %files -f linux-firmware.files
%dir %{_firmwarepath} %dir %{_firmwarepath}
%doc %{_defaultdocdir}/%{name}
%license WHENCE LICENCE.* %license WHENCE LICENCE.*
%config(noreplace) %{_firmwarepath}/netronome/nic_AMDA* %config(noreplace) %{_firmwarepath}/netronome/nic_AMDA*
%changelog %changelog
* Wed Aug 09 2023 Andrew Lukoshko <alukoshko@almalinux.org> - 20230404-114.git2e92a49f.alma.1 * Mon Oct 14 2024 Denys Vlasenko <dvlasenk@redhat.com> - 20241014-125.git06bad2f1
- Update AMD CPU ucode to fix CVE-2023-20569 - Update linux-firmware to latest upstream (RHEL-62359)
  Changes since the last update are noted on items below, copied from
  the git changelog of upstream linux-firmware repository.
- mtk_wed: add firmware for mt7988 Wireless Ethernet Dispatcher
- ath12k: WCN7850 hw2.0: update board-2.bin
- ath12k: QCN9274 hw2.0: add to WLAN.WBE.1.3.1-00162-QCAHKSWPL_SILICONZ-1
- ath12k: QCN9274 hw2.0: add board-2.bin
- copy-firmware.sh: rename variables in symlink hanlding
- copy-firmware.sh: remove no longer reachable test -L
- copy-firmware.sh: remove no longer reachable test -f
- copy-firmware.sh: call ./check_whence.py before parsing the file
- copy-firmware.sh: warn if the destination folder is not empty
- copy-firmware.sh: add err() helper
- copy-firmware.sh: fix indentation
- copy-firmware.sh: reset and consistently handle destdir
- Revert "copy-firmware: Support additional compressor options"
- copy-firmware.sh: flesh out and fix dedup-firmware.sh
- Style update yaml files
- editorconfig: add initial config file
- check_whence.py: annotate replacement strings as raw
- check_whence.py: LC_ALL=C sort -u the filelist
- check_whence.py: ban link-to-a-link
- check_whence.py: use consistent naming
- Add a link from TAS2XXX1EB3.bin -> ti/tas2781/TAS2XXX1EB30.bin
- tas2781: Upload dsp firmware for ASUS laptop 1EB30 & 1EB31
- rtlwifi: Add firmware v39.0 for RTL8192DU
- Revert "ath12k: WCN7850 hw2.0: update board-2.bin"
- amdgpu: DMCUB DCN35 update
- brcm: Add BCM4354 NVRAM for Jetson TX1
- brcm: Link FriendlyElec NanoPi M4 to AP6356S nvram
- linux-firmware: add firmware for MediaTek Bluetooth chip (MT7920)
- linux-firmware: add firmware for MT7920
- amdgpu: update raven firmware
- amdgpu: update SMU 13.0.10 firmware
- amdgpu: update PSP 13.0.10 firmware
- amdgpu: update GC 11.0.3 firmware
- amdgpu: update VCN 3.1.2 firmware
- amdgpu: update PSP 13.0.5 firmware
- amdgpu: update PSP 13.0.8 firmware
- amdgpu: update vega12 firmware
- amdgpu: update PSP 14.0.4 firmware
- amdgpu: update GC 11.5.2 firmware
- amdgpu: update vega10 firmware
- amdgpu: update VCN 4.0.0 firmware
- amdgpu: update PSP 13.0.0 firmware
- amdgpu: update GC 11.0.0 firmware
- amdgpu: update picasso firmware
- amdgpu: update beige goby firmware
- amdgpu: update vangogh firmware
- amdgpu: update dimgrey cavefish firmware
- amdgpu: update navy flounder firmware
- amdgpu: update green sardine firmware
- amdgpu: update VCN 4.0.2 firmware
- amdgpu: update PSP 13.0.4 firmware
- amdgpu: update GC 11.0.1 firmware
- amdgpu: update sienna cichlid firmware
- amdgpu: update VCN 4.0.6 firmware
- amdgpu: update PSP 14.0.1 firmware
- amdgpu: update GC 11.5.1 firmware
- amdgpu: update VCN 4.0.5 firmware
- amdgpu: update PSP 14.0.0 firmware
- amdgpu: update GC 11.5.0 firmware
- amdgpu: update navi14 firmware
- amdgpu: update renoir firmware
- amdgpu: update navi12 firmware
- amdgpu: update SMU 13.0.6 firmware
- amdgpu: update SDMA 4.4.2 firmware
- amdgpu: update PSP 13.0.6 firmware
- amdgpu: update GC 9.4.3 firmware
- amdgpu: update yellow carp firmware
- amdgpu: update VCN 4.0.4 firmware
- amdgpu: update PSP 13.0.7 firmware
- amdgpu: update GC 11.0.2 firmware
- amdgpu: update navi10 firmware
- amdgpu: update aldebaran firmware
- qcom: update gpu firmwares for qcm6490 chipset
- mt76: mt7996: add firmware files for mt7992 chipset
- mt76: mt7996: add firmware files for mt7996 chipset variants
- Merge tag 'rtw-fw-2024-09-13' of https://github.com/pkshih/linux-firmware into 8922a
- qcom: add gpu firmwares for sa8775p chipset
- amdgpu: update DMCUB to v0.0.233.0 DCN351
- rtw89: 8922a: add fw format-2 v0.35.42.1
- copy-firmware: Handle links to uncompressed files
- WHENCE: Fix battmgr.jsn entry type
- amdgpu: Add VPE 6.1.3 microcode
- amdgpu: add SDMA 6.1.2 microcode
- amdgpu: Add support for PSP 14.0.4
- amdgpu: add GC 11.5.2 microcode
- qcom: qcm6490: add ADSP and CDSP firmware
- linux-firmware: Update firmware file for Intel Bluetooth Magnetor core
- linux-firmware: Update firmware file for Intel BlazarU core
- linux-firmware: Update firmware file for Intel Bluetooth Solar core
- rtl_bt: Update RTL8852B BT USB FW to 0x0447_9301
- realtek: rt1320: Add patch firmware of MCU
- i915: Update MTL DMC v2.23
- cirrus: cs35l56: Add firmware for Cirrus CS35L54 for some HP laptops
- amdgpu: Revert sienna cichlid dmcub firmware update
- Merge tag 'iwlwifi-fw-2024-09-03' of http://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware into iwlwifi-20240903
- iwlwifi: add Bz FW for core89-58 release
- rtl_nic: add firmware rtl8126a-3
- linux-firmware: update firmware for MT7921 WiFi device
- linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
- amdgpu: update DMCUB to v0.0.232.0 for DCN314 and DCN351
- qcom: vpu: restore compatibility with kernels before 6.6
Resolves: RHEL-62359
* Mon Jul 24 2023 Andrew Lukoshko <alukoshko@almalinux.org> - 20230404-114.git2e92a49f.alma * Tue Aug 27 2024 Denys Vlasenko <dvlasenk@redhat.com> - 20240827-124.git3cff7109
- Update AMD CPU ucode to fix CVE-2023-20593 - AMD SEV: IOMMU improperly handles certain special address leading to a loss of guest integrity (RHEL-54256)
- AMD SEV: Incomplete system memory cleanup in SEV firmware corrupt guest private memory (RHEL-54237)
  Changes since the last update are noted on items below, copied from
  the git changelog of upstream linux-firmware repository.
- amdgpu: DMCUB updates forvarious AMDGPU ASICs
- rtw89: 8922a: add fw format-1 v0.35.41.0
- linux-firmware: update firmware for MT7925 WiFi device
- linux-firmware: update firmware for mediatek bluetooth chip (MT7925)
- rtl_bt: Add firmware and config files for RTL8922A
- rtl_bt: Add firmware file for the the RTL8723CS Bluetooth part
- rtl_bt: de-dupe identical config.bin files
- rename rtl8723bs_config-OBDA8723.bin -> rtl_bt/rtl8723bs_config.bin
- linux-firmware: Update AMD SEV firmware
- linux-firmware: update firmware for MT7996
- Revert "i915: Update MTL DMC v2.22"
- Merge tag 'amd-2024-08-12' of https://gitlab.freedesktop.org/drm/firmware into amd-2024-08-12
- ath12k: WCN7850 hw2.0: update board-2.bin
- ath11k: WCN6855 hw2.0: update to WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
- ath11k: WCN6855 hw2.0: update board-2.bin
- ath11k: QCA2066 hw2.1: add to WLAN.HSP.1.1-03926.13-QCAHSPSWPL_V2_SILICONZ_CE-2.52297.3
- ath11k: QCA2066 hw2.1: add board-2.bin
- ath11k: IPQ5018 hw1.0: update to WLAN.HK.2.6.0.1-01291-QCAHKSWPL_SILICONZ-1
- qcom: vpu: add video firmware for sa8775p
- amdgpu: DMCUB updates for various AMDGPU ASICs
- qcom: update path for video firmware for vpu-1/2/3.0
- Merge https://github.com/zijun-hu/qca_btfw into qca_btfw
- Merge tag 'rtw-fw-2024-08-08' of https://github.com/pkshih/linux-firmware into rtw89
- QCA: Update Bluetooth WCN685x 2.1 firmware to 2.1.0-00642
- rtw89: 8852c: add fw format-1 v0.27.97.0
- rtw89: 8852bt: add firmware 0.29.91.0
- amdgpu: Update ISP FW for isp v4.1.1
- Merge tag 'intel-2024-08-02' of https://gitlab.freedesktop.org/drm/firmware into intel-20240805
- Merge https://github.com/zijun-hu/qca_btfw into list-20240802
- mediatek: Update mt8195 SOF firmware
- Merge tag 'amd-2024-08-02' of https://gitlab.freedesktop.org/drm/firmware into amd-20240802
- amdgpu: DMCUB updates for DCN314
- xe: First GuC release v70.29.2 for BMG
- xe: Add GuC v70.29.2 for LNL
- i915: Add GuC v70.29.2 for ADL-P, DG1, DG2, MTL, and TGL
- i915: Update MTL DMC v2.22
- i915: update MTL GSC to v102.0.10.1878
- xe: Add BMG HuC 8.2.10
- xe: Add GSC 104.0.0.1161 for LNL
- xe: Add LNL HuC 9.4.13
- i915: update DG2 HuC to v7.10.16
- amdgpu: Update ISP FW for isp v4.1.1
- amdgpu: Update ISP FW for isp v4.1.1
- amdgpu: add new ISP 4.1.1 firmware
- QCA: Update Bluetooth QCA2066 firmware to 2.1.0-00641
- amdgpu: update DMCUB to v0.0.227.0 for DCN35 and DCN351
- Merge tag 'iwlwifi-fw-2024-07-25' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware into iwlfifi-fw-2024-07
- Revert "iwlwifi: update ty/So/Ma firmwares for core89-58 release"
- linux-firmware: update firmware for MT7922 WiFi device
- linux-firmware: update firmware for MT7921 WiFi device
- linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
- linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
- iwlwifi: add gl FW for core89-58 release
- iwlwifi: update ty/So/Ma firmwares for core89-58 release
- iwlwifi: update cc/Qu/QuZ firmwares for core89-58 release
- mediatek: Update mt8195 SOF firmware and sof-tplg
- ASoC: tas2781: fix the license issue for tas781 firmware
- rtl_bt: Update RTL8852B BT USB FW to 0x048F_4008
- .gitignore: Ignore intermediate files
- i915: Update Xe2LPD DMC to v2.21
Resolves: RHEL-54256, RHEL-54237
* Tue Jul 16 2024 Denys Vlasenko <dvlasenk@redhat.com> - 20240715-123.git4c8fb21e
- [Intel 8.10 FEAT] [SRF] QAT_402XX firmware update (RHEL-47353)
  Changes since the last update are noted on items below, copied from
  the git changelog of upstream linux-firmware repository.
- qcom: move signed x1e80100 signed firmware to the SoC subdir
- qcom: add video firmware file for vpu-3.0
- amdgpu: update DMCUB to v0.0.225.0 for Various AMDGPU Asics
- qcom: add gpu firmwares for x1e80100 chipset
- linux-firmware: add firmware for qat_402xx devices
- amdgpu: update raven firmware
- amdgpu: update SMU 13.0.10 firmware
- amdgpu: update SDMA 6.0.3 firmware
- amdgpu: update PSP 13.0.10 firmware
- amdgpu: update GC 11.0.3 firmware
- amdgpu: update vega20 firmware
- amdgpu: update PSP 13.0.5 firmware
- amdgpu: update PSP 13.0.8 firmware
- amdgpu: update vega12 firmware
- amdgpu: update vega10 firmware
- amdgpu: update VCN 4.0.0 firmware
- amdgpu: update SDMA 6.0.0 firmware
- amdgpu: update PSP 13.0.0 firmware
- amdgpu: update GC 11.0.0 firmware
- amdgpu: update picasso firmware
- amdgpu: update beige goby firmware
- amdgpu: update vangogh firmware
- amdgpu: update dimgrey cavefish firmware
- amdgpu: update navy flounder firmware
- amdgpu: update PSP 13.0.11 firmware
- amdgpu: update GC 11.0.4 firmware
- amdgpu: update green sardine firmware
- amdgpu: update VCN 4.0.2 firmware
- amdgpu: update SDMA 6.0.1 firmware
- amdgpu: update PSP 13.0.4 firmware
- amdgpu: update GC 11.0.1 firmware
- amdgpu: update sienna cichlid firmware
- amdgpu: update VPE 6.1.1 firmware
- amdgpu: update VCN 4.0.6 firmware
- amdgpu: update SDMA 6.1.1 firmware
- amdgpu: update PSP 14.0.1 firmware
- amdgpu: update GC 11.5.1 firmware
- amdgpu: update VCN 4.0.5 firmware
- amdgpu: update SDMA 6.1.0 firmware
- amdgpu: update PSP 14.0.0 firmware
- amdgpu: update GC 11.5.0 firmware
- amdgpu: update navi14 firmware
- amdgpu: update renoir firmware
- amdgpu: update navi12 firmware
- amdgpu: update PSP 13.0.6 firmware
- amdgpu: update GC 9.4.3 firmware
- amdgpu: update yellow carp firmware
- amdgpu: update VCN 4.0.4 firmware
- amdgpu: update SMU 13.0.7 firmware
- amdgpu: update SDMA 6.0.2 firmware
- amdgpu: update PSP 13.0.7 firmware
- amdgpu: update GC 11.0.2 firmware
- amdgpu: update navi10 firmware
- amdgpu: update raven2 firmware
- amdgpu: update aldebaran firmware
- linux-firmware: Update AMD cpu microcode
- intel: avs: Add topology file for I2S Analog Devices 4567
- intel: avs: Add topology file for I2S Nuvoton 8825
- intel: avs: Add topology file for I2S Maxim 98927
- intel: avs: Add topology file for I2S Maxim 98373
- intel: avs: Add topology file for I2S Maxim 98357a
- intel: avs: Add topology file for I2S Dialog 7219
- intel: avs: Add topology file for I2S Realtek 5663
- intel: avs: Add topology file for I2S Realtek 5640
- intel: avs: Add topology file for I2S Realtek 5514
- intel: avs: Add topology file for I2S Realtek 298
- intel: avs: Add topology file for I2S Realtek 286
- intel: avs: Add topology file for I2S Realtek 274
- intel: avs: Add topology file for Digital Microphone Array
- intel: avs: Add topology file for HDMI codecs
- intel: avs: Add topology file for HDAudio codecs
- Add a copy of Apache-2.0
- intel: avs: Update AudioDSP base firmware for APL-based platforms
- linux-firmware: Add ISH firmware file for Intel Lunar Lake platform
- amdgpu: update DMCUB to v0.0.224.0 for Various AMDGPU Asics
- cirrus: cs35l41: Update various firmware for ASUS laptops using CS35L41
- amdgpu: Update ISP FW for isp v4.1.1
- linux-firmware: mediatek: Update MT8173 VPU firmware to v1.2.0
- qcom: Add AIC100 firmware files
- amlogic: Update bluetooth firmware binary
- linux-firmware: Update firmware file for Intel BlazarU core
- linux-firmware: Update firmware file for Intel Bluetooth Magnetor core
- linux-firmware: Update firmware file for Intel Bluetooth Solar core
- linux-firmware: Update firmware file for Intel Bluetooth Pulsar core
- rtl_bt: Update RTL8822C BT UART firmware to 0xB5D6_6DCB
- rtl_bt: Update RTL8822C BT USB firmware to 0xAED6_6DCB
- amdgpu: update DMCUB to v0.0.222.0 for DCN314
- iwlwifi: add ty/So/Ma firmwares for core88-87 release
- iwlwifi: update cc/Qu/QuZ firmwares for core88-87 release
- linux-firmware: add new cc33xx firmware for cc33xx chips
- cirrus: cs35l56: Update firmware for Cirrus CS35L56 for ASUS UM5606 laptop
- cirrus: cs35l56: Update firmware for Cirrus CS35L56 for various ASUS laptops
- Merge https://github.com/zijun-hu/qca_btfw into qca
Resolves: RHEL-47353
* Mon Jun 10 2024 Denys Vlasenko <dvlasenk@redhat.com> - 20240610-122.git90df68d2
- [Intel 8.10 FEAT] [SPR][EMR] QAT firmware update available (RHEL-15607)
- CVE-2023-31346 AMD SEV: Reserved fields in guest message responses may not be zero initialized [rhel-8.10.0] (RHEL-35596)
- amd-ucode early loading broken [rhel-8] (RHEL-16799)
  Changes since the last update are noted on items below, copied from
  the git changelog of upstream linux-firmware repository.
- linux-firmware: Add firmware for Lenovo Thinkbooks
- amdgpu: update yellow carp firmware
- amdgpu: update VCN 4.0.4 firmware
- amdgpu: update SDMA 6.0.2 firmware
- amdgpu: update PSP 13.0.7 firmware
- amdgpu: update GC 11.0.2 firmware
- amdgpu: update navi10 firmware
- amdgpu: update raven2 firmware
- amdgpu: update raven firmware
- amdgpu: update SMU 13.0.10 firmware
- amdgpu: update SDMA 6.0.3 firmware
- amdgpu: update PSP 13.0.10 firmware
- amdgpu: update GC 11.0.3 firmware
- amdgpu: update VCN 3.1.2 firmware
- amdgpu: update PSP 13.0.5 firmware
- amdgpu: update psp 13.0.8 firmware
- amdgpu: update vega20 firmware
- amdgpu: update vega12 firmware
- amdgpu: update vega10 firmware
- amdgpu: update VCN 4.0.0 firmware
- amdgpu: update smu 13.0.0 firmware
- amdgpu: update SDMA 6.0.0 firmware
- amdgpu: update PSP 13.0.0 firmware
- amdgpu: update GC 11.0.0 firmware
- amdgpu: update picasso firmware
- amdgpu: update beige goby firmware
- amdgpu: update vangogh firmware
- amdgpu: update dimgrey cavefish firmware
- amdgpu: update green sardine firmware
- amdgpu: update navy flounder firmware
- amdgpu: update PSP 13.0.11 firmware
- amdgpu: update GC 11.0.4 firmware
- amdgpu: update VCN 4.0.2 firmware
- amdgpu: update SDMA 6.0.1 firmware
- amdgpu: update PSP 13.0.4 firmware
- amdgpu: update GC 11.0.1 firmware
- amdgpu: update sienna cichlid firmware
- amdgpu: update VCN 4.0.5 firmware
- amdgpu: update PSP 14.0.0 firmware
- amdgpu: update GC 11.5.0 firmware
- amdgpu: update navi14 firmware
- amdgpu: update SMU 13.0.6 firmware
- amdgpu: update PSP 13.0.6 firmware
- amdgpu: update GC 9.4.3 firmware
- amdgpu: update renoir firmware
- amdgpu: update navi12 firmware
- amdgpu: update aldebaran firmware
- amdgpu: add support for PSP 14.0.1
- amdgpu: add support for VPE 6.1.1
- amdgpu: add support for VCN 4.0.6
- amdgpu: add support for SDMA 6.1.1
- amdgpu: add support for GC 11.5.1
- amdgpu: Add support for DCN 3.5.1
- cnm: update chips&media wave521c firmware.
- linux-firmware: Add ordinary firmware for RTL8821AU device
- amdgpu: add new ISP 4.1.1 firmware
- amdgpu: DMCUB updates for various AMDGPU ASICs
- linux-firmware: Amphion: Update vpu firmware
- linux-firmware: Update firmware file for Intel BlazarU core
- linux-firmware: Update firmware file for Intel Bluetooth Magnetor core
- linux-firmware: Update firmware file for Intel Bluetooth Solar core
- linux-firmware: Update firmware file for Intel Bluetooth Solar core
- i915: Add BMG DMC v2.06
- linux-firmware: Add CS35L41 HDA Firmware for Asus HN7306
- linux-firmware: Update firmware tuning for HP Consumer Laptop
- amdgpu: DMCUB updates for various AMDGPU ASICs
- rtl_bt: Update RTL8822C BT UART firmware to 0x0FD6_407B
- rtl_bt: Update RTL8822C BT USB firmware to 0x0ED6_407B
- cirrus: cs35l56: Add firmware for Cirrus CS35L56 for various ASUS laptops
- linux-firmware: Add firmware and tuning for Lenovo Y770S
- amdgpu: DMCUB updates for various AMDGPU ASICs
- linux-firmware: Add firmware for Cirrus CS35L56 for various HP laptops
- i915: Update Xe2LPD DMC to v2.20
- linux-firmware: Remove Calibration Firmware and Tuning for CS35L41
- linux-firmware: Add firmware for Lenovo Thinkbook 13X
- ASoC: tas2781: Add dsp firmware for Thinkpad ICE-1 laptop
- amdgpu: add DMCUB 3.5 firmware
- amdgpu: add VPE 6.1.0 firmware
- amdgpu: add VCN 4.0.5 firmware
- amdgpu: add UMSCH 4.0.0 firmware
- amdgpu: add SDMA 6.1.0 firmware
- amdgpu: add PSP 14.0.0 firmware
- amdgpu: add GC 11.5.0 firmware
- amdgpu: update license date
- Montage: update firmware for Mont-TSSE
- linux-firmware: Add tuning parameter configs for CS35L41 Firmware
- linux-firmware: Fix firmware names for Laptop SSID 104316a3
- linux-firmware: Add CS35L41 HDA Firmware for Lenovo Legion Slim 7 16ARHA7
- linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
- linux-firmware: update firmware for MT7922 WiFi device
- iwlwifi: add gl FW for core87-44 release
- iwlwifi: add ty/So/Ma firmwares for core87-44 release
- iwlwifi: update cc/Qu/QuZ firmwares for core87-44 release
- nvidia: Update Tegra210 XUSB firmware to v50.29
- amdgpu: update beige goby firmware
- amdgpu: update dimgrey cavefish firmware
- amdgpu: update psp 13.0.11 firmware
- amdgpu: update gc 11.0.4 firmware
- amdgpu: update navy flounder firmware
- amdgpu: update renoir firmware
- amdgpu: update vcn 4.0.2 firmware
- amdgpu: update sdma 6.0.1 firmware
- amdgpu: update psp 13.0.4 firmware
- amdgpu: update gc 11.0.1 firmware
- amdgpu: update sienna cichlid firmware
- amdgpu: update vega20 firmware
- amdgpu: update yellow carp firmware
- amdgpu: update green sardine firmware
- amdgpu: update vega12 firmware
- amdgpu: update raven2 firmware
- amdgpu: update vcn 4.0.4 firmware
- amdgpu: update smu 13.0.7 firmware
- amdgpu: update sdma 6.0.2 firmware
- amdgpu: update ipsp 13.0.7 firmware
- amdgpu: update gc 11.0.2 firmware
- amdgpu: update vega10 firmware
- amdgpu: update raven firmware
- amdgpu: update navi14 firmware
- amdgpu: update smu 13.0.10 firmware
- amdgpu: update sdma 6.0.3 firmware
- amdgpu: update psp 13.0.10 firmware
- amdgpu: update gc 11.0.3 firmware
- amdgpu: update vcn 3.1.2 firmware
- amdgpu: update psp 13.0.5 firmware
- amdgpu: update gc 10.3.6 firmware
- amdgpu: update navi12 firmware
- amdgpu: update arcturus firmware
- amdgpu: update vangogh firmware
- amdgpu: update navi10 firmware
- amdgpu: update vcn 4.0.3 firmware
- amdgpu: update smu 13.0.6 firmware
- amdgpu: update psp 13.0.6 firmware
- amdgpu: update gc 9.4.3 firmware
- amdgpu: update vcn 4.0.0 firmware
- amdgpu: update smu 13.0.0 firmware
- amdgpu: update sdma 6.0.0 firmware
- amdgpu: update psp 13.0.0 firmware
- amdgpu: update gc 11.0.0 firmware
- amdgpu: update firmware
- amdgpu: update aldebaran firmware
- amdgpu: update psp 13.0.8 firmware
- amdgpu: update gc 10.3.7 firmware
- linux-firmware: mediatek: Update MT8173 VPU firmware to v1.1.9
- Merge https://github.com/pkshih/linux-firmware into rtw
- ath10k: WCN3990: hw1.0: add qcm2290 firmware API file
- ath10k: WCN3990: hw1.0: move firmware back from qcom/ location
- i915: Add DG2 HuC 7.10.15
- amdgpu: DMCUB updates for various AMDGPU ASICs
- linux-firmware: update firmware for en8811h 2.5G ethernet phy
- mekdiatek: Update mt8186 SOF firmware to v2.0.1
- rtw89: 8852c: update fw to v0.27.56.14
- rtw89: 8922a: add firmware v0.35.18.0
- rtw88: Add RTL8703B firmware v11.0.0
- linux-firmware: Add firmware for Cirrus CS35L56 for Dell laptops
- Montage: update firmware for Mont-TSSE
- WHENCE: Link the Raspberry Pi CM4 and 5B to the 4B
- Intel Bluetooth: Update firmware file for Intel Bluetooth BE200
- Intel Bluetooth: Update firmware file for Magnetor Intel Bluetooth AX101
- Intel Bluetooth: Update firmware file for Magnetor Intel Bluetooth AX203
- Intel Bluetooth: Update firmware file for Magnetor Intel Bluetooth AX211
- Intel Bluetooth: Update firmware file for SolarF Intel Bluetooth AX101
- Intel Bluetooth: Update firmware file for Solar Intel Bluetooth AX101
- Intel Bluetooth: Update firmware file for SolarF Intel Bluetooth AX203
- Intel Bluetooth: Update firmware file for Solar Intel Bluetooth AX203
- Intel Bluetooth: Update firmware file for SolarF Intel Bluetooth AX211
- Intel Bluetooth: Update firmware file for Solar Intel Bluetooth AX211
- Intel Bluetooth: Update firmware file for Solar Intel Bluetooth AX210
- Intel Bluetooth: Update firmware file for Intel Bluetooth AX200
- Intel Bluetooth: Update firmware file for Intel Bluetooth AX201
- Intel Bluetooth: Update firmware file for Intel Bluetooth 9560
- Intel Bluetooth: Update firmware file for Intel Bluetooth 9260
- amdgpu: DMCUB updates for various AMDGPU ASICs
- linux-firmware: mediatek: Update MT8173 VPU firmware to v1.1.8
- imx: sdma: update firmware to v3.6/v4.6
- linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
- iwlwifi: update 9000-family firmwares to core85-89
- rtl_bt: Update RTL8852A BT USB firmware to 0xD9D6_17DA
- linux-firmware: update firmware for MT7921 WiFi device
- linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
- linux-firmware: update firmware for MT7922 WiFi device
- linux-firmware: Add CS35L41 HDA Firmware for Lenovo Thinkbook 16P Laptops
- amdgpu: Update VCN firmware binaries
- Intel IPU2: Add firmware files
- brcm: Add nvram for the Acer Iconia One 7 B1-750 tablet
- i915: Add Xe2LPD DMC v2.18
- i915: Update MTL DMC v2.21
- linux-firmware: update firmware for en8811h 2.5G ethernet phy
- linux-firmware: add firmware for MT7996
- xe: First GuC release for LNL and Xe
- i915: Add GuC v70.20.0 for ADL-P, DG1, DG2, MTL and TGL
- linux-firmware: Add CS35L41 firmware for Lenovo Legion 7i gen7 laptop (16IAX7)
- brcm: Add nvram for the Asus Memo Pad 7 ME176C tablet
- ice: update ice DDP package to 1.3.36.0
- Intel IPU3 ImgU: Move firmware file under intel/ipu
- Intel IPU6: Move firmware binaries under ipu/
- check_whence: Add a check for duplicate link entries
- WHENCE: Clean up section separators
- linux-firmware: Add CS35L41 firmware for additional ASUS Zenbook 2023 models
- panthor: Add initial firmware for Gen10 Arm Mali GPUs
- amdgpu: DMCUB Updates for DCN321: 7.0.38.0
- amdgpu: DMCUB updates for Yellow Carp: 4.0.68.0
- qcom: update venus firmware file for v5.4
- Montage: add firmware for Mont-TSSE
- amdgpu: update DMCUB to v0.0.203.0 for DCN314 and DCN32
- linux-firmware: Remove 2 HP laptops using CS35L41 Audio Firmware
- linux-firmware: Fix filenames for some CS35L41 firmwares for HP
- linux-firmware: wilc1000: update WILC1000 firmware to v16.1.2
- rtl_nic: add firmware for RTL8126A
- linux-firmware: intel: Add IPU6 firmware binaries
- ath11k: WCN6855 hw2.0: update to WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37
- qcom: Add Audio firmware for SM8550 HDK
- Merge tag 'amd-2024-01-30.2' into mlimonci/amd-2024-01-30.2
- Revert "amdgpu: DMCUB updates for various AMDGPU ASICs"
- amdgpu: update SMU 13.0.0 firmware
- amdgpu: update PSP 13.0.0 firmware
- amdgpu: update GC 11.0.0 firmware
- brcm: Add brcmfmac43430-sdio.xxx.txt nvram for the Chuwi Hi8 (CWI509) tablet
- amdgpu: DMCUB updates for various AMDGPU ASICs
- qcom: Add Audio firmware for SM8650 MTP
- linux-firmware: Add firmware for Cirrus CS35L41 on HP Consumer Laptops
- Intel Bluetooth: Make spacing consistent with rest of WHENCE
- amdgpu: update raven2 firmware
- amdgpu: update raven firmware
- amdgpu: update SDMA 5.2.7 firmware
- amdgpu: update PSP 13.0.8 firmware
- amdgpu: update VCN 3.1.2 firmware
- amdgpu: update SDMA 5.2.6 firmware
- amdgpu: update PSP 13.0.5 firmware
- amdgpu: update GC 10.3.6 firmware
- amdgpu: add GC 11.0.1 rlc_1 firmware
- amdgpu: update vega20 firmware
- amdgpu: update VCN 4.0.0 firmware
- amdgpu: update SMU 13.0.0 firmware
- amdgpu: update PSP 13.0.0 firmware
- amdgpu: update GC 11.0.0 firmware
- amdgpu: update vega12 firmware
- amdgpu: update vega10 firmware
- amdgpu: update beige goby firmware
- amdgpu: update picasso firmware
- amdgpu: update dimgrey cavefish firmware
- amdgpu: update vangogh firmware
- amdgpu: update navy flounder firmware
- amdgpu: update green sardine firmware
- amdgpu: update sienna cichlid firmware
- amdgpu: update PSP 13.0.11 firmware
- amdgpu: update GC 11.0.4 firmware
- amdgpu: update VCN 4.0.2 firmware
- amdgpu: update PSP 13.0.4 firmware
- amdgpu: update GC 11.0.1 firmware
- amdgpu: update arcturus firmware
- amdgpu: update navi14 firmware
- amdgpu: add VCN 4.0.3 firmware
- amdgpu: add SDMA 4.4.2 firmware
- amdgpu: add SMU 13.0.6 firmware
- amdgpu: add PSP 13.0.6 firmware
- amdgpu: Add GC 9.4.3 firmware
- amdgpu: update renoir firmware
- amdgpu: update VCN 4.0.4 firmware
- amdgpu: update SMU 13.0.7 firmware
- amdgpu: update PSP 13.0.7 firmware
- amdgpu: update GC 11.0.2 firmware
- amdgpu: update navi12 firmware
- amdgpu: update yellow carp firmware
- amdgpu: update SMU 13.0.10 firmware
- amdgpu: update SDMA 6.0.3 firmware
- amdgpu: update PSP 13.0.10 firmware
- amdgpu: update GC 11.0.3 firmware
- amdgpu: update navi10 firmware
- amdgpu: update aldebaran firmware
- linux-firmware: Update AMD cpu microcode
- RTL8192E: Remove old realtek WiFi firmware
- Intel Bluetooth: Update firmware file for Magnetor Intel Bluetooth AX101
- Intel Bluetooth: Update firmware file for Magnetor Intel Bluetooth AX203
- Intel Bluetooth: Update firmware file for SolarF Intel Bluetooth AX203
- Intel Bluetooth: Update firmware file for SolarF Intel Bluetooth AX211
- Intel Bluetooth: Update firmware file for Solar Intel Bluetooth AX211
- amdgpu: DMCUB updates for DCN314
- qcom: Update the firmware for Adreno a630 family of GPUs
- cirrus: Add CS35L41 firmware for Legion Slim 7 Gen 8 laptops
- linux-firmware: Add firmware for Cirrus CS35L41 for various Dell laptops
- linux-firmware: update firmware for qat_4xxx devices
Resolves: RHEL-35596, RHEL-16799, RHEL-15607
* Thu Jan 11 2024 Denys Vlasenko <dvlasenk@redhat.com> - 20240111-121.gitb3132c18
- Pass --ignore-duplicates to copy-firmware.sh
- AMD Zen3 and Zen4: fix for INVD instruction causing loss of SEV-ES guest machine memory integrity
Resolves: RHEL-13982
* Wed Nov 22 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20231121-120.git9552083a
- Work around absense of rdfind during build
- Add file directives for new iwlwifi files
Resolves: RHEL-16721, RHEL-14260
* Tue Nov 21 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20231121-119.git9552083a
- Update to latest upstream linux-firmware image for assorted updates
- Update AMD cpu microcode
- hw: intel: Fix protection mechanism failure for some Intel(R) PROSet/Wireless WiFi
Resolves: RHEL-16721, RHEL-14260
* Thu Aug 24 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20230824-118.git0e048b06
- Update to latest upstream linux-firmware image for assorted updates
- AMD Zen3 and Zen4 firmware update for return address predictor velunerability
Resolves: rhbz#2230415
* Tue Aug 08 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20230808-117.git0ab353f8
- Update to latest upstream linux-firmware image for assorted updates
- Navi32 dGPU firmware
- Update to fix multi monitor behind TBT3 dock & random flickers
- AMD Zen2 firmware update for cross-process information leak
Resolves: rhbz#2047482, rhbz#2227846, rhbz#2227153
* Tue Jul 11 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20230711-116.gitd3f66064
- Update to latest upstream linux-firmware image for assorted updates
- AMD GPU firmware update: fix PSR-SU issues with kernel 6.2 or later
Resolves: rhbz#2218670
* Mon May 15 2023 Denys Vlasenko <dvlasenk@redhat.com> - 20230515-115.gitd1962891
- Update to latest upstream linux-firmware image for assorted updates
- [RHEL8] Add latest NVIDIA signed firmware for Turing GPUs and later
Resolves: rhbz#2183606
* Wed Apr 05 2023 Patrick Talbert <ptalbert@redhat.com> - 20230404-114.git2e92a49f * Wed Apr 05 2023 Patrick Talbert <ptalbert@redhat.com> - 20230404-114.git2e92a49f
- Update to latest upstream linux-firmware image for assorted updates - Update to latest upstream linux-firmware image for assorted updates