LINUX.ORG.RU

AMD Microcode, как?

 


0

2

Не грузится AMD_Microcode на обоих компах: что на Арче, что на Дженте.

Как сделать, чтоб грузилось? Arch:

$ dmesg | grep microcode
[    1.282132] microcode: CPU0: patch_level=0x010000c8
[    1.282142] microcode: CPU1: patch_level=0x010000c8
[    1.282199] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

Gentoo:

$ dmesg | grep microcode
[    0.707303] microcode: CPU0: patch_level=0x010000c8
[    0.707339] microcode: CPU1: patch_level=0x010000c8
[    0.707375] microcode: CPU2: patch_level=0x010000c8
[    0.707416] microcode: CPU3: patch_level=0x010000c8
[    0.707503] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
$ zcat /proc/config.gz | grep -i microcode
CONFIG_MICROCODE=y
# CONFIG_MICROCODE_INTEL is not set
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
# CONFIG_MICROCODE_INTEL_EARLY is not set
# CONFIG_MICROCODE_AMD_EARLY is not set
CONFIG_EXTRA_FIRMWARE="amd-ucode/microcode_amd.bin"

$ zcat /proc/config.gz | grep -i firmware
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="amd-ucode/microcode_amd.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

Deleted

Последнее исправление: Lifun (всего исправлений: 2)

а что в этом открытом амд даже процессор не работает без блобопрошивок

anonymous
()

в bios уже свежий микрокод, например

anonymous
()
Ответ на: комментарий от Slackware_user

ядра разные: gentoo-sources-3.17.1-r1 и linux-ck-3.16.6. Турион свежий и БИОС к нему выходил в 10/2013, а для Фенома - 12/2010,

Deleted
()
Ответ на: комментарий от crowbar

Это теперь оно без initrd не будет работать? А если у меня пишет только [ 25.591941] microcode: CPU0 updated to revision 0x29, date = 2013-06-12, а обновление микрокода дожно быть в биосе от 09/12/2013, можно вообще не заморачиваться и отключить обновлялку?

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 3)

УМВР, вроде:

$ dmesg | grep microcode
[    1.994702] microcode: CPU0: patch_level=0x010000c6
[    2.003219] microcode: CPU0: new patch_level=0x010000db
[    2.003233] microcode: CPU1: patch_level=0x010000c6
[    2.003239] microcode: CPU1: new patch_level=0x010000db
[    2.003245] microcode: CPU2: patch_level=0x010000c6
[    2.003249] microcode: CPU2: new patch_level=0x010000db
[    2.003297] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

$ zcat /proc/config.gz | grep -i microcode
CONFIG_MICROCODE=m
# CONFIG_MICROCODE_INTEL is not set
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
# CONFIG_MICROCODE_INTEL_EARLY is not set
# CONFIG_MICROCODE_AMD_EARLY is not set
$ equery b /lib/firmware/amd-ucode/microcode_amd.bin
 * Searching for /lib/firmware/amd-ucode/microcode_amd.bin ... 
sys-kernel/linux-firmware-20140902 (/lib/firmware/amd-ucode/microcode_amd.bin)
$ uname -a
Linux pchome 3.17.2-gentoo #1 SMP PREEMPT Fri Oct 31 07:50:52 EET 2014 x86_64 AMD Athlon(tm) II X3 435 Processor AuthenticAMD GNU/Linux
anTaRes ★★★★
()
Ответ на: комментарий от Deleted

так там не для всех камней обновление есть, вроде бы.

wakuwaku ★★★★
()

хм, похоже и всё так работало

$ dmesg | grep -i microcode
[    3.662389] microcode: CPU0: patch_level=0x010000c8
[    3.784092] microcode: CPU1: patch_level=0x010000c8
[    3.784118] microcode: CPU2: patch_level=0x010000c8
[    3.784151] microcode: CPU3: patch_level=0x010000c8
[    3.784250] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[  271.482076] microcode: Microcode Update Driver: v2.00 removed.
[  282.763306] microcode: CPU0: patch_level=0x010000c8
[  282.763427] microcode: CPU1: patch_level=0x010000c8
[  282.763448] microcode: CPU2: patch_level=0x010000c8
[  282.763472] microcode: CPU3: patch_level=0x010000c8
[  282.763559] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

Deleted
()

<tigran@aivazian.fsnet.co.uk>, Peter Oruba

Так и напиши по этому адресу и потребуй объяснений!

EXL ★★★★★
()
Ответ на: комментарий от Deleted

Простите, а как связан биос и микрокод?

микрокод выпускают только тогда когда в старой версии найдены ошибки ЕМНИП.

Slackware_user ★★★★★
()
Ответ на: комментарий от Deleted

c того, что обычно присутствует слово «updated»

легко проверить: arch/x86/kernel/cpu/microcode/

amd.c:

if (__apply_microcode_amd(mc_amd)) {
                pr_err("CPU%d: update failed for patch_level=0x%08x\n",
                        cpu, mc_amd->hdr.patch_id);
                return -1;
        }
        pr_info("CPU%d: new patch_level=0x%08x\n", cpu,
                mc_amd->hdr.patch_id);

intel.c:

if (val[1] != mc_intel->hdr.rev) {
                pr_err("CPU%d update to revision 0x%x failed\n",
                       cpu_num, mc_intel->hdr.rev);
                return -1;
        }
        pr_info("CPU%d updated to revision 0x%x, date = %04x-%02x-%02x\n",
                cpu_num, val[1],
                mc_intel->hdr.date & 0xffff,
                mc_intel->hdr.date >> 24,
                (mc_intel->hdr.date >> 16) & 0xff);

и дебаг левел соотв.:

amd.c:

pr_debug("%s: Added patch_id: 0x%08x, proc_id: 0x%04x\n",
                 __func__, patch->patch_id, proc_id);
intel.c:
pr_debug("CPU%d found a matching microcode update with version 0x%x (current=0x%x)\n",
                 cpu, new_rev, uci->cpu_sig.rev);

anTaRes ★★★★
()
Ответ на: комментарий от Slackware_user

ядра, таки, думаю, что разные.

Deleted
()
Ответ на: комментарий от anTaRes

т.е. в моём биосе таки устаревший микрокод процессора (если он там вообще есть)? 0x1a vs 0x29, в таком случае можно предположить, что асус не поставляет необязательные обновления микрокода с биосом.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 1)
Ответ на: комментарий от Slackware_user

заблэклистил модуль микрокода, потом вручную подгрузил

$ dmesg | grep -i microcode
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.17.2-gentoo root=/dev/sda1 ro scsi_mod.use_blk_mq=Y modprobe.blacklist=microcode
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.17.2-gentoo root=/dev/sda1 ro scsi_mod.use_blk_mq=Y modprobe.blacklist=microcode
[   63.829426] microcode: CPU0: patch_level=0x010000c8
[   63.868285] microcode: CPU1: patch_level=0x010000c8
[   63.868307] microcode: CPU2: patch_level=0x010000c8
[   63.868344] microcode: CPU3: patch_level=0x010000c8
[   63.868447] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

Deleted
()
Ответ на: комментарий от Deleted

Имеет. Прямое. Микрокод имеется в биосе. И некоторые биосы, если находят проц к которому нет микрокода, вообще отказываются бутиться. Характерно для интелов (особенно 370/478/775 сокет)...

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

в данном случае, ни о какой загрузки и поддержки матплатой проца речи не идёт. речь о, скорее всего, блокировании ранее объявленныъ функций на деле оказавшихся неработоспособными, как недавно у Интела. Микрокод из БИОСа никак не определяется и не подгружается, в отличие от модуль microcode, который в себе несёт обновление микрокода, причём на уровне операционной системы.

Deleted
()

Gentoo

У меня на Xeon все грузится. Но я дефолтную директрию не менял ( /lib/firmware/microcode.dat ).

[    9.704110] microcode: CPU0 sig=0x206d7, pf=0x1, revision=0x710
[    9.704304] microcode: CPU1 sig=0x206d7, pf=0x1, revision=0x710
[    9.704504] microcode: CPU2 sig=0x206d7, pf=0x1, revision=0x710
[    9.704723] microcode: CPU3 sig=0x206d7, pf=0x1, revision=0x710
[    9.704913] microcode: CPU4 sig=0x206d7, pf=0x1, revision=0x710
[    9.705112] microcode: CPU5 sig=0x206d7, pf=0x1, revision=0x710
[    9.705302] microcode: CPU6 sig=0x206d7, pf=0x1, revision=0x710
[    9.705490] microcode: CPU7 sig=0x206d7, pf=0x1, revision=0x710
[    9.705676] microcode: CPU8 sig=0x206d7, pf=0x1, revision=0x710
[    9.705863] microcode: CPU9 sig=0x206d7, pf=0x1, revision=0x710
[    9.706080] microcode: CPU10 sig=0x206d7, pf=0x1, revision=0x710
[    9.706270] microcode: CPU11 sig=0x206d7, pf=0x1, revision=0x710
[    9.706498] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_MICROCODE_INTEL_EARLY=y
# CONFIG_MICROCODE_AMD_EARLY is not set
CONFIG_MICROCODE_EARLY=y

CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# Altera FPGA firmware download module
# Firmware Drivers
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_TEST_FIRMWARE is not set

На AMD тоже:

[    0.880000] microcode: CPU0: patch_level=0x06000822
[    0.880000] microcode: CPU1: patch_level=0x06000822
[    0.880000] microcode: CPU2: patch_level=0x06000822
[    0.880000] microcode: CPU3: patch_level=0x06000822
[    0.880000] microcode: CPU4: patch_level=0x06000822
[    0.880000] microcode: CPU5: patch_level=0x06000822
[    0.880000] microcode: CPU6: patch_level=0x06000822
[    0.880000] microcode: CPU7: patch_level=0x06000822
[    0.880000] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

CONFIG_MICROCODE=y
# CONFIG_MICROCODE_INTEL is not set
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
# CONFIG_MICROCODE_INTEL_EARLY is not set
CONFIG_MICROCODE_AMD_EARLY=y
CONFIG_MICROCODE_EARLY=y

CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/TAHITI_ce.bin radeon/TAHITI_mc.bin radeon/TAHITI_me.bin radeon/TAHITI_pfp.bin radeon/TAHITI_rlc.bin radeon/TAHITI_smc.bin radeon/TAHITI_uvd.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
# Altera FPGA firmware download module
CONFIG_RT2X00_LIB_FIRMWARE=y
# Firmware Drivers
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_GOOGLE_FIRMWARE is not set
# EFI (Extensible Firmware Interface) Support

soomrack ★★★★★
()
Ответ на: комментарий от Slackware_user

Вшивается. Посмотрите ревизии биосов. И да, именно от микрокодов зависит поддержка новых камней новыми биосами.

NiTr0 ★★★★★
()
Ответ на: комментарий от Deleted

Микрокод из БИОСа никак не определяется и не подгружается

Бред. Микрокод из биоса и определяется (как дефолтный), и подгружается (при старте биоса). А зачастую - проц без соответствующего микрокода в биосе вообще не заведется (это больше характерно для интелов, но все же).

Можете заменить модуль микрокодов в своем биосе - будет тот же результат.

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

тот микрокод, что в БИОСе и этот немного разные. Модуль microcode подгружает только обновление микрокода, к-рое лежит в папке /lib/firmware, он не определяет микрокод, что зашит в БИОС. Задача этого микрокода блокировать инструкции, к-рые на деле оказались бажными или вообще неработающими.

Deleted
()
Ответ на: комментарий от soomrack

все грузится

где? в том что ты привёл — нет

anonymous
()
Ответ на: комментарий от NiTr0

The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle.

From what i've read its used to fix bugs in the cpu without modifying the BIOS. From my basic knowledge of assembler i know that assembly instructions are split into microcodes internally by the CPU and executed accordingly.

Deleted
()
Ответ на: комментарий от Deleted

производитель публикует микрокод, его распространяют в обновлениях bios(пока производитель совесть не теряет) и linux-firmware

anonymous
()
Ответ на: комментарий от Deleted

при старте bios микрокод подгружается в проц, при загрузке модуля он загружает в проц новый микрокод поверх, никуда он не зашивается

anonymous
()
Ответ на: комментарий от anonymous

если он и в проц подгружается, то только временно, т.к. вроде все инструкции хардово забиты и их не переписать.

Deleted
()
Ответ на: комментарий от anonymous

в общем, это и имел в виду ранее

Deleted
()
Ответ на: комментарий от NiTr0

AMD Generic Encapsulated Software Architecture (AGESA), is a bootstrap protocol by which system devices on AMD64-architecture mainboards are initialized. The AGESA software in the BIOS of such mainboards is responsible for the initialization of the processor cores, memory, and the HyperTransport controller.

https://en.wikipedia.org/wiki/AGESA
(уже даже опенсорс: http://review.coreboot.org/gitweb?p=coreboot.git;a=tree;f=src/vendorcode/amd)

Support for updating microcode for the AMD processors listed above will be available starting with kernel version 2.6.29.
Microcode update for AMD processors uses the firmware loading infrastructure

http://www.amd64.org/microcode.html
(это то что в amd-ucode было, сейчас все в sys-kernel/linux-firmware переехало)

т.е. хз как у интелей , но у амд это точно разные вещи

anTaRes ★★★★
()
Ответ на: комментарий от Deleted

Микрокод - один и тот же. Можете выдрать из биоса модуль и сравнить :)

NiTr0 ★★★★★
()
Ответ на: комментарий от anTaRes

AGESA и микрокод вообще-то две разные вещи. И да, обе присутствуют в биосе. Если сильно хочется - возьмите утили для разборки авардовских биосов, возьмите биос от какой-то мамки с поддержкой АМ2+ (Asus M2N-SLI Deluxe к примеру), и убедитесь, что там присутствует и микрокод, и AGESA.

NiTr0 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.