cregit-Linux how code gets into the kernel

Release 4.10 arch/x86/include/asm/microcode_amd.h

#ifndef _ASM_X86_MICROCODE_AMD_H

#define _ASM_X86_MICROCODE_AMD_H

#include <asm/microcode.h>


#define UCODE_MAGIC			0x00414d44

#define UCODE_EQUIV_CPU_TABLE_TYPE	0x00000000

#define UCODE_UCODE_TYPE		0x00000001


#define SECTION_HDR_SIZE		8

#define CONTAINER_HDR_SZ		12


struct equiv_cpu_entry {
	
u32	installed_cpu;
	
u32	fixed_errata_mask;
	
u32	fixed_errata_compare;
	
u16	equiv_cpu;
	
u16	res;
} __attribute__((packed));


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));


struct microcode_amd {
	
struct microcode_header_amd	hdr;
	
unsigned int			mpb[0];
};


#define PATCH_MAX_SIZE PAGE_SIZE

#ifdef CONFIG_MICROCODE_AMD
extern void __init load_ucode_amd_bsp(unsigned int family);
extern void load_ucode_amd_ap(unsigned int family);
extern int __init save_microcode_in_initrd_amd(unsigned int family);
void reload_ucode_amd(void);
#else

static inline void __init load_ucode_amd_bsp(unsigned int family) {}

Contributors

PersonTokensPropCommitsCommitProp
jacob shinjacob shin872.73%133.33%
borislav petkovborislav petkov218.18%133.33%
andy shevchenkoandy shevchenko19.09%133.33%
Total11100.00%3100.00%


static inline void load_ucode_amd_ap(unsigned int family) {}

Contributors

PersonTokensPropCommitsCommitProp
jacob shinjacob shin770.00%150.00%
borislav petkovborislav petkov330.00%150.00%
Total10100.00%2100.00%


static inline int __init save_microcode_in_initrd_amd(unsigned int family) { return -EINVAL; }

Contributors

PersonTokensPropCommitsCommitProp
jacob shinjacob shin1381.25%150.00%
borislav petkovborislav petkov318.75%150.00%
Total16100.00%2100.00%


void reload_ucode_amd(void) {}

Contributors

PersonTokensPropCommitsCommitProp
borislav petkovborislav petkov6100.00%1100.00%
Total6100.00%1100.00%

#endif extern bool check_current_patch_level(u32 *rev, bool early); #endif /* _ASM_X86_MICROCODE_AMD_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
jacob shinjacob shin18880.34%220.00%
borislav petkovborislav petkov4418.80%770.00%
andy shevchenkoandy shevchenko20.85%110.00%
Total234100.00%10100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.