[coreboot] When does AMD release the fam15 spectre microcode updates?
Rudolf Marek
r.marek at assembler.cz
Tue Apr 17 12:31:33 CEST 2018
Hi,
Dne 17.4.2018 v 12:09 awokd via coreboot napsal(a):
> At what byte locations in the header is the equivalence table? I was
> looking for this...
Hm I'm not aware where is it documented, or if there is some tool to manipulate it/dump the structure. Maybe
it could be added to some existing tool?
Here is what I deduced from Linux arch/x86/kernel/cpu/microcode/amd.c
+ header files
+ 0 u32 UCODE_MAGIC
+ 4 u32 UCODE_EQUIV_CPU_TABLE_TYPE (0x0)
+ 8 u32 size of following equiv table say "N"
Then this follows, the last table has installed_cpu_cpuid == 0
u32 installed_cpu_cpuid
u32 fixed_errata_mask
u32 fixed_errata_compare
u16 equiv_cpu
u16 res
+ N u32 UCODE_UCODE_TYPE (0x1)
+ N + 4 u32 sizeof blob (without this header)
+ N + 8 microcode blob from github follows here
...
Then after that, there clould be again
+ X u32 UCODE_UCODE_TYPE
+ X + 4 u32 SECTION_SIZE
+ X + 8 microcode header (blob from github follows here)
The microcode blob has the header which already matches the usual microcode header:
struct microcode_header_amd {
u32 data_code;
u32 patch_id;
u16 mc_patch_data_id;
u8 mc_patch_data_len;
u8 init_flag;
u32 mc_patch_data_checksum;
u32 nb_dev_id;
u32 sb_dev_id;
u16 processor_rev_id;
u8 nb_rev_id;
u8 sb_rev_id;
u8 bios_api_rev;
u8 reserved1[3];
u32 match_reg[8];
} __attribute__((packed));
Thanks
Rudolf
More information about the coreboot
mailing list