diff --git a/sysutils/Makefile b/sysutils/Makefile --- a/sysutils/Makefile +++ b/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 diff --git a/sysutils/devcpu-data-amd/Makefile b/sysutils/devcpu-data-amd/Makefile new file mode 100644 --- /dev/null +++ b/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 diff --git a/sysutils/devcpu-data-amd/distinfo b/sysutils/devcpu-data-amd/distinfo new file mode 100644 --- /dev/null +++ b/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 diff --git a/sysutils/devcpu-data-amd/files/LICENSE.amd-ucode b/sysutils/devcpu-data-amd/files/LICENSE.amd-ucode new file mode 100644 --- /dev/null +++ b/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/. diff --git a/sysutils/devcpu-data-amd/pkg-descr b/sysutils/devcpu-data-amd/pkg-descr new file mode 100644 --- /dev/null +++ b/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. diff --git a/sysutils/devcpu-data-amd/pkg-message b/sysutils/devcpu-data-amd/pkg-message new file mode 100644 --- /dev/null +++ b/sysutils/devcpu-data-amd/pkg-message @@ -0,0 +1,7 @@ +[ +{ type: install + message: < ${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}/ diff --git a/sysutils/devcpu-data-intel/distinfo b/sysutils/devcpu-data-intel/distinfo new file mode 100644 --- /dev/null +++ b/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 diff --git a/sysutils/devcpu-data/files/LICENSE b/sysutils/devcpu-data-intel/files/LICENSE rename from sysutils/devcpu-data/files/LICENSE rename to sysutils/devcpu-data-intel/files/LICENSE diff --git a/sysutils/devcpu-data/files/Makefile b/sysutils/devcpu-data-intel/files/Makefile rename from sysutils/devcpu-data/files/Makefile rename to sysutils/devcpu-data-intel/files/Makefile diff --git a/sysutils/devcpu-data/files/ucode-split.c b/sysutils/devcpu-data-intel/files/ucode-split.c rename from sysutils/devcpu-data/files/ucode-split.c rename to sysutils/devcpu-data-intel/files/ucode-split.c diff --git a/sysutils/devcpu-data-intel/pkg-descr b/sysutils/devcpu-data-intel/pkg-descr new file mode 100644 --- /dev/null +++ b/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 diff --git a/sysutils/devcpu-data-intel/pkg-message b/sysutils/devcpu-data-intel/pkg-message new file mode 100644 --- /dev/null +++ b/sysutils/devcpu-data-intel/pkg-message @@ -0,0 +1,7 @@ +[ +{ type: install + message: < ${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 diff --git a/sysutils/devcpu-data/distinfo b/sysutils/devcpu-data/distinfo deleted file mode 100644 --- a/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 diff --git a/sysutils/devcpu-data/files/microcode_update.in b/sysutils/devcpu-data/files/microcode_update.in --- a/sysutils/devcpu-data/files/microcode_update.in +++ b/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" diff --git a/sysutils/devcpu-data/files/pkg-message.in b/sysutils/devcpu-data/files/pkg-message.in new file mode 100644 --- /dev/null +++ b/sysutils/devcpu-data/files/pkg-message.in @@ -0,0 +1,46 @@ +[ +{ type: install + message: <