Otázka je, čo to je, lebo je to väčšie ako 12kiB= 12288B, Koľko z toho súboru je hlavička, ktorá nejde do CPU.
Ono na tých 12kiB sa mohlo prísť práve pri tom súbore...
a preto je to neodkladné=urgentné
>With a change now pending as part of the x86/urgent work,
https://www.phoronix.com/scan.php?page=news_item&px=AMD-Larger-Microcode-Linux
Pry nikdo... ale Ti chytrejsi v mikrokodu dokazou napsat i vira ,)
https://hackaday.com/2017/12/28/34c3-hacking-into-a-cpus-microcode/
https://argp.github.io/2017/09/14/re-x86-microcode/
google: amd microcode K10 pdf
17. 4. 2020, 10:08 editováno autorem komentáře
Asi je tam nastavena maximalna velkost uloziska pre FW CPU (pred loadom do CPU) vo velkosti jednej stranky, teda 4k. Predpokladam, ze ide o to ze sa dana cast pamati "pinuje" (zakazuje sa jej odswapovanie, co je pri takej citlivej zalezitosti ako load FW do CPU pochopitelne) a tam je prax vyuzivat to najmensie mnozstvo pamati. Teraz sa velkost alokovanej pamati zvysila na 3 stranky (12kB).
Nějak velký buffer mít musíte, a tohle zatím stačilo. Šlo by samozřejmě alokovat paměť dynamicky, např. podle velikosti souboru, ale to je všechno komplexita navíc, a to ve velmi rané a zranitelné fázi bootu. Nevím jistě, ale myslím že je to ještě před inicializací MMU, není k dispozici heap (a tím pádem malloc), dost možná ani stat.
Do SoCu se to nahraje tak, že microcode nahrajete do paměti, a pak do určitých registrů zapíšete pointer a délku, kolik si má přečíst (arch/x86/kernel/cpu/microcode/amd.c).
A proc by bootloader mel nest tech 7.5MB (239 souboru) zbytecne zateze? Jaka by byla vyhoda??
Protoze mikrokod obsahuji rovnou i BIOSy, z vyse uvedene mnoziny vzdy jen ty, ktere se tykaji CPU ktery lze do desky pripojit.
CPU mikrokod jsou patche pro zpusob vykonavani instrukci, neni to neco, bez ceho by se nedalo fungovat.