summaryrefslogtreecommitdiff
path: root/sysutils/cpu-microcode-intel
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/cpu-microcode-intel')
-rw-r--r--sysutils/cpu-microcode-intel/Makefile48
-rw-r--r--sysutils/cpu-microcode-intel/distinfo3
-rw-r--r--sysutils/cpu-microcode-intel/files/LICENSE125
-rw-r--r--sysutils/cpu-microcode-intel/files/Makefile18
-rw-r--r--sysutils/cpu-microcode-intel/files/ucode-split.c203
-rw-r--r--sysutils/cpu-microcode-intel/pkg-descr7
-rw-r--r--sysutils/cpu-microcode-intel/pkg-message8
-rw-r--r--sysutils/cpu-microcode-intel/pkg-plist212
8 files changed, 624 insertions, 0 deletions
diff --git a/sysutils/cpu-microcode-intel/Makefile b/sysutils/cpu-microcode-intel/Makefile
new file mode 100644
index 000000000000..3bf75e45b495
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/Makefile
@@ -0,0 +1,48 @@
+PORTNAME= microcode
+DISTVERSIONPREFIX= microcode-
+DISTVERSION= 20230808
+CATEGORIES= sysutils
+PKGNAMEPREFIX= cpu-
+PKGNAMESUFFIX= -intel
+
+MAINTAINER= sbruno@FreeBSD.org
+COMMENT= Intel CPU microcode updates
+WWW= https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files
+
+LICENSE= EULA
+LICENSE_NAME= Intel Software License Agreement
+LICENSE_FILE= ${FILESDIR}/LICENSE
+LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+ONLY_FOR_ARCHS= amd64 i386
+
+RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/microcode_update:sysutils/cpu-microcode-rc
+
+USES= cpe
+CPE_PART= o
+CPE_VENDOR= intel
+CPE_PRODUCT= microcode
+USE_GITHUB= yes
+GH_ACCOUNT= intel
+GH_PROJECT= Intel-Linux-Processor-Microcode-Data-Files
+
+DATADIR= ${PREFIX}/share/cpucontrol
+FWDIR= /boot/firmware
+NO_ARCH= yes
+
+NO_WRKSUBDIR= yes
+
+post-extract:
+ ${CP} -p ${FILESDIR}/Makefile ${FILESDIR}/ucode-split.c ${WRKSRC}
+ ${REINPLACE_CMD} 's|%%GH_TAGNAME%%|${GH_TAGNAME}|g' ${WRKSRC}/Makefile
+ ${CAT} ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode/* \
+ ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode-with-caveats/* \
+ > ${WRKSRC}/intel-ucode.bin
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}/
+ ${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/
+ ${MKDIR} ${STAGEDIR}${FWDIR}
+ ${INSTALL_DATA} ${WRKSRC}/intel-ucode.bin ${STAGEDIR}${FWDIR}/
+
+.include <bsd.port.mk>
diff --git a/sysutils/cpu-microcode-intel/distinfo b/sysutils/cpu-microcode-intel/distinfo
new file mode 100644
index 000000000000..d256c4575f71
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1691520692
+SHA256 (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20230808_GH0.tar.gz) = fe49bb719441f20335ed6004090ab38cdc374134d36d4f5d30be7ed93b820313
+SIZE (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20230808_GH0.tar.gz) = 13011561
diff --git a/sysutils/cpu-microcode-intel/files/LICENSE b/sysutils/cpu-microcode-intel/files/LICENSE
new file mode 100644
index 000000000000..905826435746
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/files/LICENSE
@@ -0,0 +1,125 @@
+The terms of the software license agreement included with any software you download will control your use of the software.
+
+INTEL SOFTWARE LICENSE AGREEMENT
+
+IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
+Do not use or load this software and any associated materials (collectively,
+the "Software") until you have carefully read the following terms and
+conditions. By loading or using the Software, you agree to the terms of this
+Agreement. If you do not wish to so agree, do not install or use the Software.
+
+LICENSES: Please Note:
+- If you are a network administrator, the "Site License" below shall
+apply to you.
+- If you are an end user, the "Single User License" shall apply to you.
+- If you are an original equipment manufacturer (OEM), the "OEM License"
+shall apply to you.
+
+SITE LICENSE. You may copy the Software onto your organization's computers
+for your organization's use, and you may make a reasonable number of
+back-up copies of the Software, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may not sublicense or permit simultaneous use of the Software by
+more than one user.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+SINGLE USER LICENSE. You may copy the Software onto a single computer for
+your personal, noncommercial use, and you may make one back-up copy of the
+Software, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may not sublicense or permit simultaneous use of the Software by
+more than one user.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+OEM LICENSE: You may reproduce and distribute the Software only as an
+integral part of or incorporated in Your product or as a standalone
+Software maintenance update for existing end users of Your products,
+excluding any other standalone products, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may only distribute the Software to your customers pursuant to a
+written license agreement. Such license agreement may be a "break-the-
+seal" license agreement. At a minimum such license shall safeguard
+Intel's ownership rights to the Software.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+NO OTHER RIGHTS. No rights or licenses are granted by Intel to You, expressly
+or by implication, with respect to any proprietary information or patent,
+copyright, mask work, trademark, trade secret, or other intellectual property
+right owned or controlled by Intel, except as expressly provided in this
+Agreement.
+
+OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
+remains with Intel or its suppliers. The Software is copyrighted and
+protected by the laws of the United States and other countries, and
+international treaty provisions. You may not remove any copyright notices
+from the Software. Intel may make changes to the Software, or to items
+referenced therein, at any time without notice, but is not obligated to
+support or update the Software. Except as otherwise expressly provided, Intel
+grants no express or implied right under Intel patents, copyrights,
+trademarks, or other intellectual property rights. You may transfer the
+Software only if the recipient agrees to be fully bound by these terms and if
+you retain no copies of the Software.
+
+LIMITED MEDIA WARRANTY. If the Software has been delivered by Intel on
+physical media, Intel warrants the media to be free from material physical
+defects for a period of ninety days after delivery by Intel. If such a defect
+is found, return the media to Intel for replacement or alternate delivery of
+the Software as Intel may select.
+
+EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND
+INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A
+PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the
+accuracy or completeness of any information, text, graphics, links or other
+items contained within the Software.
+
+LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE LIABLE
+FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS,
+BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR
+INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR
+LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL
+DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE
+OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
+
+TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time
+if you violate its terms. Upon termination, you will immediately destroy the
+Software or return all copies of the Software to Intel.
+
+APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the
+laws of California, excluding its principles of conflict of laws and the
+United Nations Convention on Contracts for the Sale of Goods. You may not
+export the Software in violation of applicable export laws and regulations.
+Intel is not obligated under any other agreements unless they are in writing
+and signed by an authorized representative of Intel.
+
+GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED
+RIGHTS." Use, duplication, or disclosure by the Government is subject to
+restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its
+successor. Use of the Software by the Government constitutes acknowledgment
+of Intel's proprietary rights therein. Contractor or Manufacturer is Intel
+2200 Mission College Blvd., Santa Clara, CA 95052.
diff --git a/sysutils/cpu-microcode-intel/files/Makefile b/sysutils/cpu-microcode-intel/files/Makefile
new file mode 100644
index 000000000000..975279ec2a14
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/files/Makefile
@@ -0,0 +1,18 @@
+INTEL_UCODE= Intel-Linux-Processor-Microcode-Data-Files-%%GH_TAGNAME%%/intel-ucode
+OUTPUT_DIR= mcodes
+
+all: ucode
+ucode: ucode-split
+ mkdir -p $(OUTPUT_DIR)
+ cd ${OUTPUT_DIR} && \
+ for file in \
+ ../${INTEL_UCODE}/[0-9,a-f][0-9,a-f]-[0-9,a-f][0-9,a-f]-[0-9,a-f][0-9,a-f]; do \
+ ../ucode-split $$file; \
+ done
+
+# Use the host cc to compile ucode-split in case of cross-compile
+ucode-split: ucode-split.c
+ ${CC} ucode-split.c -o $@
+
+clean:
+ rm -rf $(OUTPUT_DIR) ucode-split
diff --git a/sysutils/cpu-microcode-intel/files/ucode-split.c b/sysutils/cpu-microcode-intel/files/ucode-split.c
new file mode 100644
index 000000000000..be659a613902
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/files/ucode-split.c
@@ -0,0 +1,203 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (C) 2018 The FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <err.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+static const size_t bufsize = 65536;
+
+/* SDM vol 3 9.11.1 Intel microcode header. */
+struct microcode_update_header {
+ uint32_t header_version;
+ uint32_t update_revision;
+ uint32_t date; /* BCD mmddyyyy */
+ uint32_t processor_signature;
+ uint32_t checksum; /* Over update data and header */
+ uint32_t loader_revision;
+ uint32_t processor_flags;
+ uint32_t data_size;
+ uint32_t total_size;
+ uint32_t reserved[3];
+};
+
+/*
+ * SDM vol 2A CPUID EAX = 01h Returns Model, Family, Stepping Information.
+ * Caller must free the returned string.
+ */
+
+static char *
+format_signature(uint32_t signature)
+{
+ char *buf;
+ unsigned family, model, stepping;
+
+ family = (signature & 0xf00) >> 8;
+ model = (signature & 0xf0) >> 4;
+ stepping = signature & 0xf;
+ if (family == 0x06 || family == 0x0f)
+ model += (signature & 0xf0000) >> 12;
+ if (family == 0x0f)
+ family += (signature & 0xff00000) >> 20;
+ asprintf(&buf, "%02x-%02x-%02x", family, model, stepping);
+ if (buf == NULL)
+ err(1, "asprintf");
+ return (buf);
+}
+
+static void
+dump_header(const struct microcode_update_header *hdr)
+{
+ char *sig_str;
+ int i;
+ bool platformid_printed;
+
+ sig_str = format_signature(hdr->processor_signature);
+ printf("header version\t0x%x\n", hdr->header_version);
+ printf("revision\t0x%x\n", hdr->update_revision);
+ printf("date\t\t0x%x\t%04x-%02x-%02x\n", hdr->date,
+ hdr->date & 0xffff, (hdr->date & 0xff000000) >> 24,
+ (hdr->date & 0xff0000) >> 16);
+ printf("signature\t0x%x\t\t%s\n", hdr->processor_signature, sig_str);
+ printf("checksum\t0x%x\n", hdr->checksum);
+ printf("loader revision\t0x%x\n", hdr->loader_revision);
+ printf("processor flags\t0x%x", hdr->processor_flags);
+ platformid_printed = false;
+ for (i = 0; i < 8; i++) {
+ if (hdr->processor_flags & 1 << i) {
+ printf("%s%d", platformid_printed ? ", " : "\t\t", i);
+ platformid_printed = true;
+ }
+ }
+ printf("\n");
+ printf("datasize\t0x%x\t\t0x%x\n", hdr->data_size,
+ hdr->data_size != 0 ? hdr->data_size : 2000);
+ printf("size\t\t0x%x\t\t0x%x\n", hdr->total_size,
+ hdr->total_size != 0 ? hdr->total_size : 2048);
+ free(sig_str);
+}
+
+static void
+usage(void)
+{
+
+ printf("ucode-split [-v] microcode_file\n");
+ exit(1);
+}
+
+int
+main(int argc, char *argv[])
+{
+ struct microcode_update_header hdr;
+ char *buf, *output_file, *sig_str;
+ size_t len, resid;
+ ssize_t rv;
+ int c, ifd, ofd;
+ bool vflag;
+
+ vflag = false;
+ while ((c = getopt(argc, argv, "v")) != -1) {
+ switch (c) {
+ case 'v':
+ vflag = true;
+ break;
+ default:
+ usage();
+ }
+ }
+ argc -= optind;
+ argv += optind;
+
+ if (argc != 1)
+ usage();
+
+ ifd = open(argv[0], O_RDONLY);
+ if (ifd < 0)
+ err(1, "open");
+
+ buf = malloc(bufsize);
+ if (buf == NULL)
+ err(1, "malloc");
+
+ for (;;) {
+ /* Read header. */
+ rv = read(ifd, &hdr, sizeof(hdr));
+ if (rv < 0) {
+ err(1, "read");
+ } else if (rv == 0) {
+ break;
+ } else if (rv < (ssize_t)sizeof(hdr)) {
+ errx(1, "invalid microcode header");
+ }
+ if (hdr.header_version != 1)
+ errx(1, "invalid header version");
+
+ if (vflag)
+ dump_header(&hdr);
+
+ sig_str = format_signature(hdr.processor_signature);
+ asprintf(&output_file, "%s.%02x", sig_str,
+ hdr.processor_flags & 0xff);
+ free(sig_str);
+ if (output_file == NULL)
+ err(1, "asprintf");
+ ofd = open(output_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ if (ofd < 0)
+ err(1, "open");
+
+ /* Write header. */
+ rv = write(ofd, &hdr, sizeof(hdr));
+ if (rv < (ssize_t)sizeof(hdr))
+ err(1, "write");
+
+ /* Copy data. */
+ resid = (hdr.total_size != 0 ? hdr.total_size : 2048) -
+ sizeof(hdr);
+ if (resid > 1 << 24) /* Arbitrary chosen maximum size. */
+ errx(1, "header total_size too large");
+ while (resid > 0) {
+ len = resid < bufsize ? resid : bufsize;
+ rv = read(ifd, buf, len);
+ if (rv < 0)
+ err(1, "read");
+ else if (rv < (ssize_t)len)
+ errx(1, "truncated microcode data");
+ if (write(ofd, buf, len) < (ssize_t)len)
+ err(1, "write");
+ resid -= len;
+ }
+ if (vflag)
+ printf("written to %s\n\n", output_file);
+ close(ofd);
+ free(output_file);
+ }
+}
diff --git a/sysutils/cpu-microcode-intel/pkg-descr b/sysutils/cpu-microcode-intel/pkg-descr
new file mode 100644
index 000000000000..bb3abee393e0
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/pkg-descr
@@ -0,0 +1,7 @@
+This port uses the cpuctl(4) microcode update facility to keep your Intel
+processor's firmware up-to-date.
+
+Updating your microcode can help to mitigate certain potential security
+vulnerabilities in CPUs as well as address certain functional issues that could,
+for example, result in unpredictable system behavior such as hangs, crashes,
+unexpected reboots, data errors, etc.
diff --git a/sysutils/cpu-microcode-intel/pkg-message b/sysutils/cpu-microcode-intel/pkg-message
new file mode 100644
index 000000000000..cb644c546b28
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/pkg-message
@@ -0,0 +1,8 @@
+[
+{ type: install
+ message: <<EOM
+Refer to the cpu-microcode-rc installation notes to enable Intel
+microcode updates.
+EOM
+}
+]
diff --git a/sysutils/cpu-microcode-intel/pkg-plist b/sysutils/cpu-microcode-intel/pkg-plist
new file mode 100644
index 000000000000..3d1beca7852d
--- /dev/null
+++ b/sysutils/cpu-microcode-intel/pkg-plist
@@ -0,0 +1,212 @@
+%%DATADIR%%/06-03-02.00
+%%DATADIR%%/06-05-00.01
+%%DATADIR%%/06-05-00.02
+%%DATADIR%%/06-05-00.08
+%%DATADIR%%/06-05-01.01
+%%DATADIR%%/06-05-02.01
+%%DATADIR%%/06-05-02.02
+%%DATADIR%%/06-05-02.04
+%%DATADIR%%/06-05-03.01
+%%DATADIR%%/06-05-03.02
+%%DATADIR%%/06-05-03.04
+%%DATADIR%%/06-05-03.08
+%%DATADIR%%/06-06-00.01
+%%DATADIR%%/06-06-05.10
+%%DATADIR%%/06-06-0a.02
+%%DATADIR%%/06-06-0a.08
+%%DATADIR%%/06-06-0a.20
+%%DATADIR%%/06-06-0d.02
+%%DATADIR%%/06-06-0d.08
+%%DATADIR%%/06-06-0d.20
+%%DATADIR%%/06-07-01.04
+%%DATADIR%%/06-07-02.04
+%%DATADIR%%/06-07-03.04
+%%DATADIR%%/06-08-01.01
+%%DATADIR%%/06-08-01.04
+%%DATADIR%%/06-08-01.08
+%%DATADIR%%/06-08-01.10
+%%DATADIR%%/06-08-01.20
+%%DATADIR%%/06-08-03.08
+%%DATADIR%%/06-08-03.20
+%%DATADIR%%/06-08-06.01
+%%DATADIR%%/06-08-06.02
+%%DATADIR%%/06-08-06.04
+%%DATADIR%%/06-08-06.10
+%%DATADIR%%/06-08-06.80
+%%DATADIR%%/06-08-0a.10
+%%DATADIR%%/06-08-0a.20
+%%DATADIR%%/06-08-0a.80
+%%DATADIR%%/06-09-05.10
+%%DATADIR%%/06-09-05.20
+%%DATADIR%%/06-09-05.80
+%%DATADIR%%/06-0a-00.04
+%%DATADIR%%/06-0a-01.04
+%%DATADIR%%/06-0b-01.10
+%%DATADIR%%/06-0b-01.20
+%%DATADIR%%/06-0b-04.10
+%%DATADIR%%/06-0b-04.20
+%%DATADIR%%/06-0d-06.20
+%%DATADIR%%/06-0e-08.20
+%%DATADIR%%/06-0e-0c.20
+%%DATADIR%%/06-0e-0c.80
+%%DATADIR%%/06-0f-02.01
+%%DATADIR%%/06-0f-02.20
+%%DATADIR%%/06-0f-06.01
+%%DATADIR%%/06-0f-06.04
+%%DATADIR%%/06-0f-06.20
+%%DATADIR%%/06-0f-07.10
+%%DATADIR%%/06-0f-07.40
+%%DATADIR%%/06-0f-0a.80
+%%DATADIR%%/06-0f-0b.01
+%%DATADIR%%/06-0f-0b.04
+%%DATADIR%%/06-0f-0b.08
+%%DATADIR%%/06-0f-0b.10
+%%DATADIR%%/06-0f-0b.20
+%%DATADIR%%/06-0f-0b.40
+%%DATADIR%%/06-0f-0b.80
+%%DATADIR%%/06-0f-0d.01
+%%DATADIR%%/06-0f-0d.20
+%%DATADIR%%/06-0f-0d.80
+%%DATADIR%%/06-16-01.01
+%%DATADIR%%/06-16-01.02
+%%DATADIR%%/06-16-01.80
+%%DATADIR%%/06-17-06.01
+%%DATADIR%%/06-17-06.04
+%%DATADIR%%/06-17-06.10
+%%DATADIR%%/06-17-06.40
+%%DATADIR%%/06-17-06.80
+%%DATADIR%%/06-17-07.10
+%%DATADIR%%/06-17-0a.11
+%%DATADIR%%/06-17-0a.44
+%%DATADIR%%/06-17-0a.a0
+%%DATADIR%%/06-1a-04.03
+%%DATADIR%%/06-1a-05.03
+%%DATADIR%%/06-1c-02.01
+%%DATADIR%%/06-1c-02.04
+%%DATADIR%%/06-1c-02.08
+%%DATADIR%%/06-1c-0a.01
+%%DATADIR%%/06-1c-0a.04
+%%DATADIR%%/06-1c-0a.08
+%%DATADIR%%/06-1c-0a.10
+%%DATADIR%%/06-1d-01.08
+%%DATADIR%%/06-1e-05.13
+%%DATADIR%%/06-25-02.12
+%%DATADIR%%/06-25-05.92
+%%DATADIR%%/06-26-01.01
+%%DATADIR%%/06-26-01.02
+%%DATADIR%%/06-2a-07.12
+%%DATADIR%%/06-2c-02.03
+%%DATADIR%%/06-2d-06.6d
+%%DATADIR%%/06-2d-07.6d
+%%DATADIR%%/06-2e-06.04
+%%DATADIR%%/06-2f-02.05
+%%DATADIR%%/06-37-08.02
+%%DATADIR%%/06-37-08.0c
+%%DATADIR%%/06-37-09.0f
+%%DATADIR%%/06-3a-09.12
+%%DATADIR%%/06-3c-03.32
+%%DATADIR%%/06-3d-04.c0
+%%DATADIR%%/06-3e-04.ed
+%%DATADIR%%/06-3e-06.ed
+%%DATADIR%%/06-3e-07.ed
+%%DATADIR%%/06-3f-02.6f
+%%DATADIR%%/06-3f-04.80
+%%DATADIR%%/06-45-01.72
+%%DATADIR%%/06-46-01.32
+%%DATADIR%%/06-47-01.22
+%%DATADIR%%/06-4c-03.01
+%%DATADIR%%/06-4c-04.01
+%%DATADIR%%/06-4d-08.01
+%%DATADIR%%/06-4e-03.c0
+%%DATADIR%%/06-55-03.97
+%%DATADIR%%/06-55-04.b7
+%%DATADIR%%/06-55-05.b7
+%%DATADIR%%/06-55-06.bf
+%%DATADIR%%/06-55-07.bf
+%%DATADIR%%/06-55-0b.bf
+%%DATADIR%%/06-56-02.10
+%%DATADIR%%/06-56-03.10
+%%DATADIR%%/06-56-04.10
+%%DATADIR%%/06-56-05.10
+%%DATADIR%%/06-5c-02.01
+%%DATADIR%%/06-5c-09.03
+%%DATADIR%%/06-5c-0a.03
+%%DATADIR%%/06-5e-03.36
+%%DATADIR%%/06-5f-01.01
+%%DATADIR%%/06-66-03.80
+%%DATADIR%%/06-6a-05.87
+%%DATADIR%%/06-6a-06.87
+%%DATADIR%%/06-6c-01.10
+%%DATADIR%%/06-7a-01.01
+%%DATADIR%%/06-7a-08.01
+%%DATADIR%%/06-7e-05.80
+%%DATADIR%%/06-8a-01.10
+%%DATADIR%%/06-8c-01.80
+%%DATADIR%%/06-8c-02.c2
+%%DATADIR%%/06-8d-01.c2
+%%DATADIR%%/06-8e-09.10
+%%DATADIR%%/06-8e-09.c0
+%%DATADIR%%/06-8e-0a.c0
+%%DATADIR%%/06-8e-0b.d0
+%%DATADIR%%/06-8e-0c.94
+%%DATADIR%%/06-8f-08.10
+%%DATADIR%%/06-8f-08.87
+%%DATADIR%%/06-96-01.01
+%%DATADIR%%/06-97-02.07
+%%DATADIR%%/06-9a-03.80
+%%DATADIR%%/06-9a-04.40
+%%DATADIR%%/06-9c-00.01
+%%DATADIR%%/06-9e-09.2a
+%%DATADIR%%/06-9e-0a.22
+%%DATADIR%%/06-9e-0b.02
+%%DATADIR%%/06-9e-0c.22
+%%DATADIR%%/06-9e-0d.22
+%%DATADIR%%/06-a5-02.20
+%%DATADIR%%/06-a5-03.22
+%%DATADIR%%/06-a5-05.22
+%%DATADIR%%/06-a6-00.80
+%%DATADIR%%/06-a6-01.80
+%%DATADIR%%/06-a7-01.02
+%%DATADIR%%/06-b7-01.32
+%%DATADIR%%/06-ba-02.e0
+%%DATADIR%%/06-be-00.11
+%%DATADIR%%/0f-00-07.01
+%%DATADIR%%/0f-00-07.02
+%%DATADIR%%/0f-00-0a.01
+%%DATADIR%%/0f-00-0a.02
+%%DATADIR%%/0f-00-0a.04
+%%DATADIR%%/0f-01-02.04
+%%DATADIR%%/0f-02-04.02
+%%DATADIR%%/0f-02-04.04
+%%DATADIR%%/0f-02-04.10
+%%DATADIR%%/0f-02-05.01
+%%DATADIR%%/0f-02-05.02
+%%DATADIR%%/0f-02-05.04
+%%DATADIR%%/0f-02-05.10
+%%DATADIR%%/0f-02-06.02
+%%DATADIR%%/0f-02-07.02
+%%DATADIR%%/0f-02-07.04
+%%DATADIR%%/0f-02-07.08
+%%DATADIR%%/0f-02-09.02
+%%DATADIR%%/0f-02-09.04
+%%DATADIR%%/0f-02-09.08
+%%DATADIR%%/0f-03-02.0d
+%%DATADIR%%/0f-03-03.0d
+%%DATADIR%%/0f-03-04.1d
+%%DATADIR%%/0f-04-01.02
+%%DATADIR%%/0f-04-01.bd
+%%DATADIR%%/0f-04-03.9d
+%%DATADIR%%/0f-04-04.9d
+%%DATADIR%%/0f-04-07.9d
+%%DATADIR%%/0f-04-08.01
+%%DATADIR%%/0f-04-08.02
+%%DATADIR%%/0f-04-08.5f
+%%DATADIR%%/0f-04-09.bd
+%%DATADIR%%/0f-04-0a.5c
+%%DATADIR%%/0f-04-0a.5d
+%%DATADIR%%/0f-06-02.04
+%%DATADIR%%/0f-06-04.01
+%%DATADIR%%/0f-06-04.34
+%%DATADIR%%/0f-06-05.01
+%%DATADIR%%/0f-06-08.22
+/boot/firmware/intel-ucode.bin