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