xref: /illumos-gate/usr/src/data/ucode/README.ucode (revision dd03b475)
155908bd7SJohn Levon#
255908bd7SJohn Levon# This file and its contents are supplied under the terms of the
355908bd7SJohn Levon# Common Development and Distribution License ("CDDL"), version 1.0.
455908bd7SJohn Levon# You may only use this file in accordance with the terms of version
555908bd7SJohn Levon# 1.0 of the CDDL.
655908bd7SJohn Levon#
755908bd7SJohn Levon# A full copy of the text of the CDDL should have accompanied this
855908bd7SJohn Levon# source.  A copy of the CDDL is also available via the Internet at
955908bd7SJohn Levon# http://www.illumos.org/license/CDDL.
1055908bd7SJohn Levon#
1155908bd7SJohn Levon
1255908bd7SJohn Levon#
1355908bd7SJohn Levon# Copyright 2019 Joyent, Inc.
14be672c8eSAndy Fiddaman# Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
1555908bd7SJohn Levon#
1655908bd7SJohn Levon
1755908bd7SJohn LevonMicrocode Management
1855908bd7SJohn Levon
1955908bd7SJohn LevonHistorically microcode files were delivered by Intel as a single
2055908bd7SJohn Levonmicrocode file that we would break apart and install with ucodeadm. Each
2155908bd7SJohn Levonindividual file represented a single platform's microcode. However,
2255908bd7SJohn Levonrecently Intel has changed that policy and is no longer distributing
2355908bd7SJohn Levonmicrocode in that fashion. Further, we also relied on bootadm to go
2455908bd7SJohn Levonthrough and turn this microcode into individual files as part of setting
2555908bd7SJohn Levonup the boot environment.
2655908bd7SJohn Levon
2755908bd7SJohn LevonIntead of using this method, we will update the microcode and manage
2855908bd7SJohn Levonthem in here as individual files. When updating files, please indicate
2955908bd7SJohn Levonthe release that the microcode was obtained from here.
3055908bd7SJohn Levon
31be672c8eSAndy Fiddaman>>> Intel
32be672c8eSAndy Fiddaman
3355908bd7SJohn LevonThe upstream microcode for Intel can currently be found at:
3455908bd7SJohn Levon
35be672c8eSAndy Fiddaman    https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files
3655908bd7SJohn Levon
3755908bd7SJohn LevonThe script "update.intel" in this directory can be used to help automate
3855908bd7SJohn Levonthe update by providing a tarball of the above microcode, and takes care
3955908bd7SJohn Levonof updating the manifest as necessary. Be careful about new files.
4055908bd7SJohn Levon
41be672c8eSAndy FiddamanIntel - see:
42ec6a85f5SDan McDonald    usr/src/pkg/manifests/system-microcode-intel.p5m
43ec6a85f5SDan McDonaldfor exact current version
44be672c8eSAndy Fiddaman
45be672c8eSAndy Fiddaman>>> AMD
46be672c8eSAndy Fiddaman
47be672c8eSAndy FiddamanThe upstream microcode for AMD can currently be found at:
48be672c8eSAndy Fiddaman
49be672c8eSAndy Fiddaman    git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
50be672c8eSAndy Fiddaman
51be672c8eSAndy FiddamanThe script "update.amd" in this directory can be used to help automate
52be672c8eSAndy Fiddamanthe update by automatically checking out the latest upstream firmware and
53be672c8eSAndy Fiddamaninserting it into the tree and package manifest. Be careful about new files.
54be672c8eSAndy Fiddaman
55*dd03b475SAndy FiddamanNOTE: If any microcode file is larger than 8KiB (8192 bytes), then the size of
56*dd03b475SAndy Fiddaman      the ucode_file_amd_t structure in uts/common/sys/ucode.h will need
57*dd03b475SAndy Fiddaman      increasing to cater for this.
58*dd03b475SAndy Fiddaman
59be672c8eSAndy FiddamanAMD - see:
60be672c8eSAndy Fiddaman    usr/src/pkg/manifests/system-microcode-amd.p5m
61be672c8eSAndy Fiddamanfor exact current version
62be672c8eSAndy Fiddaman
63