xref: /illumos-gate/usr/src/man/man8/ucodeadm.8 (revision 6fa29843813e354e472ca1ef80590ab80e2362b7)
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