Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142981298
D32349.id98063.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
34 KB
Referenced Files
None
Subscribers
None
D32349.id98063.diff
View Options
Index: UPDATING
===================================================================
--- UPDATING
+++ UPDATING
@@ -139,6 +139,20 @@
Due to these changes, CVS, GUI, PERFORCE, and SUBVERSION options
as well as gui and svn flavors were removed from the port.
+20211010:
+ AFFECTS: users of sysutils/devcpu-data
+ AUTHOR: jrm@FreeBSD.org
+
+ The RC variable name microcode_cpus was changed to
+ microcode_update_cpus. If the old names appears in your rc.conf, it
+ must be updated to the new name.
+
+ Two new ports were branched from sysutils/devcpu-data,
+ sysustils/devcpu-data-amd and sysustils/devcpu-data-intel. The two
+ new ports contain only the CPU microcode updates for each vendor and
+ sysutils/devcpu-data now only contains an RC script. Both new ports
+ are on-by-default, optional dependencies of sysutils/devcpu-data.
+
20211010:
AFFECTS: users of gtk2 flavored devel/geany*
AUTHOR: madpilot@FreeBSD.org
Index: sysutils/Makefile
===================================================================
--- sysutils/Makefile
+++ sysutils/Makefile
@@ -255,6 +255,8 @@
SUBDIR += desktop-installer
SUBDIR += detox
SUBDIR += devcpu-data
+ SUBDIR += devcpu-data-amd
+ SUBDIR += devcpu-data-intel
SUBDIR += devstat
SUBDIR += dfc
SUBDIR += di
Index: sysutils/devcpu-data-amd/Makefile
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= data
+PORTVERSION= 20191228
+CATEGORIES= sysutils
+MASTER_SITES= LOCAL/sbruno
+PKGNAMEPREFIX= devcpu-
+PKGNAMESUFFIX= -amd
+DISTNAME= amd64-microcode.${PORTVERSION}
+
+MAINTAINER= sbruno@FreeBSD.org
+COMMENT= AMD CPUs microcode updates
+
+LICENSE= EULA
+LICENSE_NAME= Advanced Micro Devices License Agreement
+LICENSE_FILE= ${FILESDIR}/LICENSE.amd-ucode
+LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+ONLY_FOR_ARCHS= amd64 i386
+
+USES= tar:xz
+
+NO_ARCH= yes
+NO_BUILD= yes
+
+NO_WRKSUBDIR= yes
+
+DATADIR= ${PREFIX}/share/cpucontrol
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}/
+ ${INSTALL_DATA} ${WRKSRC}/microcode_amd.bin ${STAGEDIR}${DATADIR}/
+ ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam15h.bin ${STAGEDIR}${DATADIR}/
+ ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam16h.bin ${STAGEDIR}${DATADIR}/
+ ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam17h.bin ${STAGEDIR}${DATADIR}/
+
+.include <bsd.port.mk>
Index: sysutils/devcpu-data-amd/distinfo
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633576196
+SHA256 (amd64-microcode.20191228.tar.xz) = 156eef8950f28436e045c1d5ac6e4738d99c07a6737d35bf966901f4b260abb3
+SIZE (amd64-microcode.20191228.tar.xz) = 28827
Index: sysutils/devcpu-data-amd/files/LICENSE.amd-ucode
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/files/LICENSE.amd-ucode
@@ -0,0 +1,64 @@
+Copyright (C) 2010-2018 Advanced Micro Devices, Inc., All rights reserved.
+
+Permission is hereby granted by Advanced Micro Devices, Inc. ("AMD"),
+free of any license fees, to any person obtaining a copy of this
+microcode in binary form (the "Software") ("You"), to install,
+reproduce, copy and distribute copies of the Software and to permit
+persons to whom the Software is provided to do the same, subject to
+the following terms and conditions. Your use of any portion of the
+Software shall constitute Your acceptance of the following terms and
+conditions. If You do not agree to the following terms and conditions,
+do not use, retain or redistribute any portion of the Software.
+
+If You redistribute this Software, You must reproduce the above
+copyright notice and this license with the Software.
+Without specific, prior, written permission from AMD, You may not
+reference AMD or AMD products in the promotion of any product derived
+from or incorporating this Software in any manner that implies that
+AMD endorses or has certified such product derived from or
+incorporating this Software.
+
+You may not reverse engineer, decompile, or disassemble this Software
+or any portion thereof.
+
+THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
+MERCHANTABILITY, NONINFRINGEMENT, TITLE, FITNESS FOR ANY PARTICULAR
+PURPOSE, OR WARRANTIES ARISING FROM CONDUCT, COURSE OF DEALING, OR
+USAGE OF TRADE. IN NO EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR
+ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR
+LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF DATA OR
+INFORMATION) ARISING OUT OF AMD'S NEGLIGENCE, GROSS NEGLIGENCE, THE
+USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF AMD HAS BEEN ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS
+PROHIBIT THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR
+INCIDENTAL DAMAGES OR THE EXCLUSION OF IMPLIED WARRANTIES, THE ABOVE
+LIMITATION MAY NOT APPLY TO YOU.
+
+Without limiting the foregoing, the Software may implement third party
+technologies for which You must obtain licenses from parties other
+than AMD. You agree that AMD has not obtained or conveyed to You, and
+that You shall be responsible for obtaining the rights to use and/or
+distribute the applicable underlying intellectual property rights
+related to the third party technologies. These third party
+technologies are not licensed hereunder.
+
+If You use the Software (in whole or in part), You shall adhere to all
+applicable U.S., European, and other export laws, including but not
+limited to the U.S. Export Administration Regulations ("EAR"), (15
+C.F.R. Sections 730 through 774), and E.U. Council Regulation (EC) No
+1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the
+EAR, You hereby certify that, except pursuant to a license granted by
+the United States Department of Commerce Bureau of Industry and
+Security or as otherwise permitted pursuant to a License Exception
+under the U.S. Export Administration Regulations ("EAR"), You will not
+(1) export, re-export or release to a national of a country in Country
+Groups D:1, E:1 or E:2 any restricted technology, software, or source
+code You receive hereunder, or (2) export to Country Groups D:1, E:1
+or E:2 the direct product of such technology or software, if such
+foreign produced direct product is subject to national security
+controls as identified on the Commerce Control List (currently found
+in Supplement 1 to Part 774 of EAR). For the most current Country
+Group listings, or for additional information about the EAR or Your
+obligations under those regulations, please refer to the U.S. Bureau
+of Industry and Security?s website at ttp://www.bis.doc.gov/.
Index: sysutils/devcpu-data-amd/pkg-descr
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/pkg-descr
@@ -0,0 +1,2 @@
+This port uses the cpuctl(4) microcode update facility to keep your AMD
+processor's firmware up-to-date.
Index: sysutils/devcpu-data-amd/pkg-message
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+Refer to the devcpu-data installation notes to enable AMD microcode updates.
+EOM
+}
+]
Index: sysutils/devcpu-data-amd/pkg-plist
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-amd/pkg-plist
@@ -0,0 +1,4 @@
+%%DATADIR%%/microcode_amd.bin
+%%DATADIR%%/microcode_amd_fam15h.bin
+%%DATADIR%%/microcode_amd_fam16h.bin
+%%DATADIR%%/microcode_amd_fam17h.bin
Index: sysutils/devcpu-data-intel/Makefile
===================================================================
--- sysutils/devcpu-data-intel/Makefile
+++ sysutils/devcpu-data-intel/Makefile
@@ -1,45 +1,43 @@
-# Created by: stas
-
PORTNAME= data
-PORTVERSION= 1.39
+DISTVERSIONPREFIX= microcode-
+DISTVERSION= 20210608
CATEGORIES= sysutils
-MASTER_SITES= LOCAL/sbruno:amd
PKGNAMEPREFIX= devcpu-
-DISTFILES= amd64-microcode.20191228.tar.xz:amd
+PKGNAMESUFFIX= -intel
MAINTAINER= sbruno@FreeBSD.org
-COMMENT= Intel and AMD CPUs microcode updates
+COMMENT= Intel CPU microcode updates
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
+
+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
-GH_TAGNAME= microcode-20210608
-
-ONLY_FOR_ARCHS= amd64 i386
-NO_ARCH= yes
-NO_WRKSUBDIR= yes
DATADIR= ${PREFIX}/share/cpucontrol
FWDIR= /boot/firmware
+NO_ARCH= yes
-USE_RC_SUBR= microcode_update
+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
+ ${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}/microcode_amd.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam15h.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam16h.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam17h.bin ${STAGEDIR}${DATADIR}/
${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/
${MKDIR} ${STAGEDIR}${FWDIR}
${INSTALL_DATA} ${WRKSRC}/intel-ucode.bin ${STAGEDIR}${FWDIR}/
Index: sysutils/devcpu-data-intel/distinfo
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-intel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633571846
+SHA256 (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20210608_GH0.tar.gz) = fd85b6b769efd029dec6a2c07106fd18fb4dcb548b7bc4cde09295a8344ef6d7
+SIZE (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20210608_GH0.tar.gz) = 4782451
Index: sysutils/devcpu-data-intel/pkg-descr
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-intel/pkg-descr
@@ -0,0 +1,9 @@
+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.
+
+WWW: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files
Index: sysutils/devcpu-data-intel/pkg-message
===================================================================
--- /dev/null
+++ sysutils/devcpu-data-intel/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+Refer to the devcpu-data installation notes to enable Intel microcode updates.
+EOM
+}
+]
Index: sysutils/devcpu-data-intel/pkg-plist
===================================================================
--- sysutils/devcpu-data-intel/pkg-plist
+++ sysutils/devcpu-data-intel/pkg-plist
@@ -201,8 +201,4 @@
%%DATADIR%%/0f-06-04.34
%%DATADIR%%/0f-06-05.01
%%DATADIR%%/0f-06-08.22
-%%DATADIR%%/microcode_amd.bin
-%%DATADIR%%/microcode_amd_fam15h.bin
-%%DATADIR%%/microcode_amd_fam16h.bin
-%%DATADIR%%/microcode_amd_fam17h.bin
/boot/firmware/intel-ucode.bin
Index: sysutils/devcpu-data/Makefile
===================================================================
--- sysutils/devcpu-data/Makefile
+++ sysutils/devcpu-data/Makefile
@@ -1,47 +1,38 @@
# Created by: stas
PORTNAME= data
-PORTVERSION= 1.39
+PORTVERSION= 20211006
CATEGORIES= sysutils
-MASTER_SITES= LOCAL/sbruno:amd
+MASTER_SITES= # none
PKGNAMEPREFIX= devcpu-
-DISTFILES= amd64-microcode.20191228.tar.xz:amd
+DISTFILES= # none
+EXTRACT_ONLY= # none
MAINTAINER= sbruno@FreeBSD.org
-COMMENT= Intel and AMD CPUs microcode updates
+COMMENT= AMD and Intel CPUs microcode updates
-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
-
-USE_GITHUB= yes
-GH_ACCOUNT= intel
-GH_PROJECT= Intel-Linux-Processor-Microcode-Data-Files
-GH_TAGNAME= microcode-20210608
+LICENSE= BSD2CLAUSE
ONLY_FOR_ARCHS= amd64 i386
+
+USE_RC_SUBR= microcode_update
+
+DATADIR= ${PREFIX}/share/cpucontrol
NO_ARCH= yes
+NO_BUILD= yes
+NO_INSTALL= yes
+SUB_FILES= pkg-message
+
NO_WRKSUBDIR= yes
-DATADIR= ${PREFIX}/share/cpucontrol
-FWDIR= /boot/firmware
+OPTIONS_DEFAULT= AMD INTEL
+OPTIONS_MULTI= VENDOR
+OPTIONS_MULTI_VENDOR= AMD INTEL
-USE_RC_SUBR= microcode_update
+AMD_DESC= Depend on sysutils/devcpu-data-amd
+INTEL_DESC= Depend on sysutils/devcpu-data-intel
-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}/microcode_amd.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam15h.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam16h.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam17h.bin ${STAGEDIR}${DATADIR}/
- ${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/
- ${MKDIR} ${STAGEDIR}${FWDIR}
- ${INSTALL_DATA} ${WRKSRC}/intel-ucode.bin ${STAGEDIR}${FWDIR}/
+AMD_RUN_DEPENDS= ${LOCALBASE}/share/cpucontrol/microcode_amd.bin:sysutils/devcpu-data-amd
+INTEL_RUN_DEPENDS= /boot/firmware/intel-ucode.bin:sysutils/devcpu-data-intel
.include <bsd.port.mk>
Index: sysutils/devcpu-data/distinfo
===================================================================
--- sysutils/devcpu-data/distinfo
+++ /dev/null
@@ -1,5 +0,0 @@
-TIMESTAMP = 1623192235
-SHA256 (amd64-microcode.20191228.tar.xz) = 156eef8950f28436e045c1d5ac6e4738d99c07a6737d35bf966901f4b260abb3
-SIZE (amd64-microcode.20191228.tar.xz) = 28827
-SHA256 (intel-Intel-Linux-Processor-Microcode-Data-Files-1.39-microcode-20210608_GH0.tar.gz) = fd85b6b769efd029dec6a2c07106fd18fb4dcb548b7bc4cde09295a8344ef6d7
-SIZE (intel-Intel-Linux-Processor-Microcode-Data-Files-1.39-microcode-20210608_GH0.tar.gz) = 4782451
Index: sysutils/devcpu-data/files/LICENSE
===================================================================
--- /dev/null
+++ sysutils/devcpu-data/files/LICENSE
@@ -1,125 +0,0 @@
-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.
Index: sysutils/devcpu-data/files/Makefile
===================================================================
--- /dev/null
+++ sysutils/devcpu-data/files/Makefile
@@ -1,18 +0,0 @@
-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
Index: sysutils/devcpu-data/files/microcode_update.in
===================================================================
--- sysutils/devcpu-data/files/microcode_update.in
+++ sysutils/devcpu-data/files/microcode_update.in
@@ -12,7 +12,7 @@
# microcode_update_datadir (str): Directory, microcode updates stored in.
# Default is "%%DATADIR%%"
# microcode_update_cpus (str): A list of cpus to update on startup, or "ALL" for all.
-# Example: microcode_update_cpus_cpus="0 CPU0"
+# Example: microcode_update_cpus="0 1"
# Set to "ALL" by default.
# microcode_update_flags (str): Flags for cpucontrol(8).
@@ -40,11 +40,11 @@
microcode_update_start()
{
echo "Updating CPU Microcode..."
- if [ "${microcode_cpus}" = "ALL" ]; then
+ if [ "${microcode_update_cpus}" = "ALL" ]; then
ncpu=`/sbin/sysctl -n hw.ncpu`
cpus=`jot ${ncpu} 0`;
else
- cpus=${microcode_cpus}
+ cpus=${microcode_update_cpus}
fi
for i in ${cpus}; do
${CMT} -u ${microcode_update_flags} \
@@ -52,7 +52,7 @@
logger -p daemon.notice -t microcode_update || \
(echo "Microcode Update Failed." && exit 1)
done
- if [ "${microcode_cpus}" = "ALL" ]; then
+ if [ "${microcode_update_cpus}" = "ALL" ]; then
CPUCONTROL_UPDATED=$(cpucontrol -h 2>&1 | grep -q -- -e; echo $?)
if [ ${CPUCONTROL_UPDATED} -ne 0 ]; then
echo "Please update your system in order to update CPU microcode."
@@ -70,9 +70,19 @@
load_rc_config $name
# Set default values
+if [ -n "${microcode_cpus}" ]; then
+ if [ -n "${microcode_update_cpus}" ]; then
+ echo "Warning: Ignoring deprecated rc variable, microcode_cpus."
+ else
+ echo "Warning: rc variable microcode_cpus is deprecated.
+Warning: Set microcode_udpate_cpus instead."
+ microcode_update_cpus="${microcode_cpus}"
+ fi
+fi
+
: ${microcode_update_enable="NO"}
: ${microcode_update_datadir="%%DATADIR%%"}
-: ${microcode_cpus="ALL"}
+: ${microcode_update_cpus="ALL"}
: ${microcode_update_flags=""}
run_rc_command "$1"
Index: sysutils/devcpu-data/files/pkg-message.in
===================================================================
--- /dev/null
+++ sysutils/devcpu-data/files/pkg-message.in
@@ -0,0 +1,46 @@
+[
+{ type: install
+ message: <<EOM
+This port includes an RC script, which is one of two methods to update the
+CPU microcode on a FreeBSD system.
+
+1. The first method, which does not require the RC script included in this
+ port is currently only supported on FreeBSD 12.0 or later and Intel i386
+ and amd64 processors. It is the preferred method when available because
+ it ensures that any CPU features introduced by a microcode update are
+ visible to the kernel by applying the update before the kernel performs
+ CPU feature detection.
+
+ To enable updates using the first method, add the following lines to
+ /boot/loader.conf:
+
+ cpu_microcode_load="YES"
+ cpu_microcode_name="/boot/firmware/intel-ucode.bin"
+
+ The microcode update will be loaded when the system is rebooted.
+
+
+2. The second method, which uses the RC script included in this port can
+ be enabled by adding the following line to /etc/rc.conf:
+
+ microcode_update_enable="YES"
+
+ The microcode update is then applied upon reboot or when the microcode
+ update service is run via:
+
+ # service microcode_update start
+
+ If the CPU requires a microcode update, a console message such as the
+ following will appear:
+
+ Updating CPU Microcode...
+ %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done.
+ %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done.
+ %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done.
+ %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done.
+ Done.
+
+It is safe to enable both methods.
+EOM
+}
+]
Index: sysutils/devcpu-data/files/ucode-split.c
===================================================================
--- /dev/null
+++ sysutils/devcpu-data/files/ucode-split.c
@@ -1,203 +0,0 @@
-/*-
- * 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);
- }
-}
Index: sysutils/devcpu-data/pkg-descr
===================================================================
--- sysutils/devcpu-data/pkg-descr
+++ sysutils/devcpu-data/pkg-descr
@@ -1,3 +1,3 @@
-This port supplies microcode updates for use with cpuctl(4) microcode
-update facility. These could be used to keep your processor's firmware
-up-to-date.
+An RC script for use with the cpuctl(4) microcode update facility to keep your
+processor's firmware up-to-date. CPU microcode data must be installed from a
+vendor. See sysutils/devcpu-data-amd and sysutils/devcpu-data-intel.
Index: sysutils/devcpu-data/pkg-message
===================================================================
--- sysutils/devcpu-data/pkg-message
+++ /dev/null
@@ -1,46 +0,0 @@
-[
-{ type: install
- message: <<EOM
-Installing this port will allow host startup to update the CPU microcode on
-a FreeBSD system automatically. There are two methods for updating CPU
-microcode: the first methods loads and applies the update before the kernel
-begins booting, and the second method loads and applies updates using an
-rc script. The first method is preferred, but is currently only supported
-on Intel i386 and amd64 processors running FreeBSD 12.0. It is safe to
-enable both methods.
-
-The first method ensures that any CPU features introduced by a microcode
-update are visible to the kernel. In other words, the update is loaded
-before the kernel performs CPU feature detection.
-
-To enable updates using the first method, add the following lines to
-the system's /boot/loader.conf:
-
-cpu_microcode_load="YES"
-cpu_microcode_name="/boot/firmware/intel-ucode.bin"
-
-This method will not load the microcode update until the system is
-rebooted.
-
-To enable updates using the second method, add the following line to
-the system's /etc/rc.conf:
-
-microcode_update_enable="YES"
-
-Then, to ensure the update is applied, reboot the system or start the
-microcode update service via:
-
-# service microcode_update start
-
-If the CPU requires a microcode update, a console message such as the following
-will appear:
-
-Updating CPU Microcode...
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done.
-Done.
-EOM
-}
-]
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jan 26, 2:01 AM (7 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27990517
Default Alt Text
D32349.id98063.diff (34 KB)
Attached To
Mode
D32349: WIP to separate out sysutils/devcpu-data into two ports
Attached
Detach File
Event Timeline
Log In to Comment