
El Paquete de Actualización de Microcódigo (MCU) para Procesadores Intel proporciona un mecanismo para publicar actualizaciones para avisos de seguridad y problemas funcionales, incluyendo erratas. Además, los MCU son responsables de iniciar el enclave SGX (en procesadores que admiten la función SGX), implementar comportamientos complejos (como asistencias), y más. El método preferido para aplicar los MCU es mediante el BIOS del sistema. Para un subconjunto de los procesadores de Intel, el MCU también se puede actualizar en tiempo de ejecución mediante el sistema operativo. El Paquete de Microcódigo Intel compartido aquí contiene actualizaciones para aquellos procesadores que admiten la carga de MCU mediante el sistema operativo.
Actualizar su microcódigo puede ayudar a mitigar ciertas vulnerabilidades de seguridad potenciales en las CPU, así como a abordar ciertos problemas funcionales que podrían, por ejemplo, resultar en un comportamiento impredecible del sistema, como bloqueos, caídas, reinicios inesperados, errores de datos, etc. Para obtener más información sobre cómo aplicar MCU a un procesador Intel, consulte Orientación sobre la Actualización de Microcódigo.
Este paquete se proporciona para distribuidores de Linux para su inclusión en sus lanzamientos de sistemas operativos. Intel recomienda obtener los MCU más recientes mediante el mecanismo de actualización del proveedor del sistema operativo. Un buen punto de partida es Proveedor de Sistemas Operativos y Software. Los usuarios expertos pueden actualizar su microcódigo directamente fuera del mecanismo del proveedor del sistema operativo. Sin embargo, este método es complejo y podría resultar en errores si se realiza incorrectamente. Dichos errores podrían incluir, entre otros, congelamientos del sistema, incapacidad de arranque, impactos en el rendimiento, procesadores lógicos cargando actualizaciones diferentes, y algunas actualizaciones sin efecto. Como resultado, este método solo debe ser intentado por usuarios expertos.
Los MCU se cargan mejor desde el BIOS. Ciertos MCU solo deben aplicarse desde el BIOS. Tales MCU nunca se empaquetan en este paquete, ya que no son apropiados para la distribución mediante el sistema operativo. Un OEM puede recibir paquetes de actualización de microcódigo que son un superconjunto de lo que contiene este paquete para su inclusión en un BIOS.
Los proveedores de sistemas operativos pueden optar por proporcionar un MCU que el kernel pueda consumir para la carga temprana. Por ejemplo, Linux puede aplicar un MCU muy temprano en la secuencia de arranque del kernel. En situaciones donde una actualización de BIOS no está disponible, la carga temprana es la siguiente mejor alternativa para actualizar el microcódigo del procesador. Los estados del microcódigo se restablecen en un reinicio de alimentación, por lo que es necesario que el MCU se cargue cada vez durante el proceso de arranque.
Se recomienda usar el método initrd para cargar un MCU, ya que este método cargará el MCU en el momento más temprano para la mayor cobertura. Los sistemas que no pueden tolerar tiempo de inactividad pueden usar el método de carga tardía para actualizar un sistema en ejecución sin reiniciarlo.
La Firma del Procesador es un número que identifica el modelo y la versión de un procesador Intel. Se puede obtener mediante la instrucción CPUID, a través del comando lscpu, o desde el contenido de /proc/cpuinfo. Generalmente se presenta como 3 campos: Familia, Modelo y Stepping.
Por ejemplo, si un procesador devuelve un valor de «0x000906eb» desde la instrucción CPUID:
El nombre de archivo correspondiente con el formato de Linux será «06-9e-0b», donde:
Un procesador puede estar implementado para múltiples tipos de plataforma. Los procesadores Intel tienen un campo de ID de Plataforma de 3 bits en MSR(17H) que especifica el tipo de plataforma para hasta 8 tipos. Un archivo MCU para un modelo de procesador específico puede admitir múltiples plataformas. El/los ID de Plataforma admitidos por un MCU es una máscara de 8 bits donde cada bit establecido indica un tipo de plataforma que el MCU admite. El ID de Plataforma de un procesador se puede leer en Linux usando rdmsr de msr-tools.
El directorio intel-ucode contiene archivos MCU binarios nombrados en el formato familia-modelo-stepping. Este formato de archivo es compatible con la mayoría de las distribuciones modernas de Linux. Generalmente se encuentra en el directorio /lib/firmware y se puede actualizar a través de la interfaz de recarga de microcódigo siguiendo las instrucciones de actualización de carga tardía a continuación.
Para actualizar el initrd de carga temprana, consulte a su distribución de Linux sobre cómo empaquetar archivos MCU para la carga temprana. Algunas distribuciones usan update-initramfs o dracut. Use el método recomendado por el proveedor del sistema operativo para ayudar a garantizar que el archivo MCU se actualice para la carga temprana antes de intentar el procedimiento de carga tardía a continuación.
Para actualizar el paquete intel-ucode en el sistema:
/sys/devices/system/cpu/microcode/reload$ git clone https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git o$ wget https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/main.zipintel-ucode a /lib/firmware, sobrescribiendo los archivos en /lib/firmware/intel-ucode/$ echo 1 > /sys/devices/system/cpu/microcode/reload$ sudo update-initramfs -u$ sudo reboot$ dmesg | grep microcode o$ cat /proc/cpuinfo | grep microcode | sort | uniqSi está utilizando el método del proveedor del sistema operativo para aplicar un MCU, los pasos anteriores pueden haberse realizado automáticamente durante el proceso de actualización.
El directorio intel-ucode-with-caveats contiene MCU que requieren un manejo especial. El MCU BDX-ML se proporciona en este directorio porque requiere commits especiales en el kernel de Linux; de lo contrario, actualizarlo podría resultar en un comportamiento inesperado del sistema. Los proveedores de sistemas operativos deben asegurarse de que los parches del cargador tardío (proporcionados en linux-kernel-patches) estén incluidos en la distribución antes de empaquetar el MCU BDX-ML para la carga tardía.
El directorio linux-kernel-patches consiste en parches del kernel que abordan varios problemas relacionados con la aplicación de MCU.
$ printf "%x\n" <número_a_convertir_a_hex>$ iucode_tool -l intel-ucode | grep -wF sig (el paquete iucode_tool es requerido)$ od -t x4 <Familia-Modelo-Stepping> leerá los primeros 16 bytes del encabezado binario del microcódigo especificado en <Familia-Modelo-Stepping>. El tercer bloque es la versión del microcódigo. Por ejemplo:
$ od -t x4 06-55-040000000 00000001 *02000065* 09052019 00050654Consulte el archivo licencia para obtener más detalles.
Consulte el archivo security.md para obtener más detalles.
Consulte el archivo releasenote.md para obtener más detalles.
Las características y beneficios de las tecnologías Intel dependen de la configuración del sistema y pueden requerir hardware, software o activación de servicios habilitados. El rendimiento varía según la configuración del sistema. Consulte con el fabricante o minorista de su sistema, u obtenga más información en www.intel.com.
Ningún producto o componente puede ser absolutamente seguro.
Toda la información proporcionada aquí está sujeta a cambios sin previo aviso. Contacte a su representante de Intel para obtener las últimas especificaciones y hojas de ruta de productos Intel.
Los productos y servicios descritos pueden contener defectos o errores conocidos como erratas, que pueden causar desviaciones de las especificaciones publicadas. Las erratas actuales caracterizadas están disponibles bajo solicitud.
Intel proporciona estos materiales tal cual, sin garantías expresas o implícitas.
© Intel Corporation. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias.
*Otros nombres y marcas pueden ser reclamados como propiedad de otros.
| Reservado | Familia Extendida | Modelo Extendido | Reservado | Tipo de Procesador | Código de Familia | Número de Modelo | ID de Stepping |
|---|
| 31:28 | 27:20 | 19:16 | 15:14 | 13:12 | 11:8 | 7:4 | 3:0 |
| xxxx | 00000000b | 1001b | xx | 00b | 0110b | 1110b | 1011b |