1.\" The contents of this file are subject to the terms of the Common 2.\" Development and Distribution License (the "License"). You may not use 3.\" this file except in compliance with the License. 4.\" 5.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or 6.\" http://www.opensolaris.org/os/licensing. See the License for the 7.\" specific language governing permissions and limitations under the 8.\" License. 9.\" 10.\" When distributing Covered Code, include this CDDL HEADER in each file 11.\" and include the License file at usr/src/OPENSOLARIS.LICENSE. If 12.\" applicable, add the following below this CDDL HEADER, with the fields 13.\" enclosed by brackets "[]" replaced with your own identifying 14.\" information: Portions Copyright [yyyy] [name of copyright owner] 15.\" 16.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved 17.\" Copyright 2022 OmniOS Community Edition (OmniOSce) Association. 18.\" Copyright 2023 Oxide Computer Company 19.\" 20.Dd August 14, 2023 21.Dt UCODEADM 8 22.Os 23.Sh NAME 24.Nm ucodeadm 25.Nd processor microcode utility 26.Sh SYNOPSIS 27.Nm 28.Fl i 29.Op Fl t Ar type 30.Op Fl R Ar path 31.Ar microcode-file 32.Nm 33.Fl l 34.Op Fl t Ar type 35.Ar microcode-file 36.Nm 37.Fl u 38.Op Fl t Ar type 39.Ar microcode-file 40.Nm 41.Fl v 42.Sh DESCRIPTION 43The 44.Nm 45utility can be used to report the running microcode revision on the processors, 46update microcode, extract microcode to the target system to be used during the 47boot process, or to view details of the microcode patches contained within 48.Ar microcode-file , 49where 50.Ar microcode-file 51is an update obtained from a processor vendor. 52.Pp 53In general, processor microcode updates are provided as part of the operating 54system and automatically applied during system boot, and there is no need for a 55system administrator to use 56.Nm 57directly. 58The operating system bundled files are not suitable for use with 59.Nm . 60.Sh OPTIONS 61.Bl -tag -width Ds 62.It Fl i Ar microcode-file 63Install microcode files on target system to be used during the next boot cycle. 64The type of the file must either be specified with the 65.Fl t 66option, or 67.Ar microcode-file 68name must start with the vendor name prefix, either 69.Dq intel 70or 71.Dq amd , 72so that the type can be inferred from it. 73.Pp 74By default the microcode files will be installed at: 75.Pp 76.D1 Pa /platform/$ARCH/ucode/$VENDORSTR/ 77.Pp 78where 79.Dv VENDORSTR 80is either 81.Dq GenuineIntel 82or 83.Dq AuthenticAMD 84and 85.Dv ARCH 86is the architecture of the running machine \(em the same value that is shown by 87the 88.Fl m 89option of 90.Xr uname 1 . 91.It Fl l Ar microcode-file 92Display details of the microcode patches contained within 93.Ar microcode-file . 94.It Fl t Ar type 95Specify the type of 96.Ar microcode-file . 97Either 98.Dq intel 99or 100.Dq amd . 101.It Fl u Ar microcode-file 102Update microcode on all cross-call interrupt ready processors. 103.It Fl v 104Report the microcode revision for each CPU on the current system. 105.It Fl R Ar alternate-path 106Install 107.Ar microcode 108files into the provided 109.Ar alternate-path . 110.El 111.Sh EXIT STATUS 112The following exit values are returned: 113.Bl -tag -width Ds 114.It 0 115Successful completion. 116.It >0 117An error occurred. 118.El 119.Sh EXAMPLES 120.Sy Example 1 No Reporting the Microcode Revision 121.Pp 122The following example displays the microcode revision that is currently running: 123.Bd -literal -offset 4n 124# ucodeadm -v 125CPU Microcode Version 1260 0x2f 1271 0x2f 128.Ed 129.Pp 130.Sy Example 2 No Updating the Processor Microcode 131.Pp 132The following example updates the processor microcode using 133.Pa intel-ucode.txt : 134.Bd -literal -offset 4n 135# ucodeadm -u intel-ucode.txt 136.Ed 137.Pp 138.Sy Example 3 No Installing the Microcode on the Target System 139.Pp 140The following example installs the microcode into 141.Pa /export/ucode-path 142on the target system: 143.Bd -literal -offset 4n 144# ucodeadm -i -R /export/ucode-path intel-ucode.txt 145# ls /export/ucode-path 14600001632-00 147.Ed 148.Pp 149If an alternate path is used when installing the microcode on the target 150system, the installed microcode file is not used on the next boot cycle. 151.Pp 152.Sy Example 4 No Listing the contents of a microcode file 153.Bd -literal -offset 4n 154# ucodeadm -l amd_fam17h.bin 155Equivalence table: 156 00800F82 Family=17 Model=08 Stepping=02 -> 8082 157 00800F12 Family=17 Model=01 Stepping=02 -> 8012 158 00830F10 Family=17 Model=31 Stepping=00 -> 8310 159Microcode patches: 160 8082 -> Patch=0800820D Date=04162019 Bytes=3200 161 8012 -> Patch=0800126E Date=11112021 Bytes=3200 162 8310 -> Patch=08301055 Date=02152022 Bytes=3200 163 164# ucodeadm -l intel-ucode.txt 165Microcode patches: 166 00090672-03 -> Family=06 Model=97 Stepping=02 167 Date=03032022 Bytes=212876 168Extended Signature Table: 169 00090672-03 -> Family=06 Model=97 Stepping=02 170 00090675-03 -> Family=06 Model=97 Stepping=05 171 000B06F2-03 -> Family=06 Model=bf Stepping=02 172 000B06F5-03 -> Family=06 Model=bf Stepping=05 173.Ed 174.Sh INTERFACE STABILITY 175The command line interface of 176.Nm 177is 178.Sy Committed . 179The output of 180.Nm 181is 182.Sy Not-An-Interface 183and may change at any time. 184.Sh SEE ALSO 185.Xr uname 1 , 186.Xr attributes 7 , 187.Xr psradm 8 , 188.Xr psrinfo 8 189