1 /* SPDX-License-Identifier: Intel */ 2 /* 3 * Copyright (C) 2013, Intel Corporation 4 * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 5 */ 6 7 #ifndef _FSP_HEADER_H_ 8 #define _FSP_HEADER_H_ 9 10 #define FSP_HEADER_OFF 0x94 /* Fixed FSP header offset in the FSP image */ 11 12 struct __packed fsp_header { 13 u32 sign; /* 'FSPH' */ 14 u32 hdr_len; /* header length */ 15 u8 reserved1[3]; 16 u8 hdr_rev; /* header rev */ 17 u32 img_rev; /* image rev */ 18 char img_id[8]; /* signature string */ 19 u32 img_size; /* image size */ 20 u32 img_base; /* image base */ 21 u32 img_attr; /* image attribute */ 22 u32 cfg_region_off; /* configuration region offset */ 23 u32 cfg_region_size; /* configuration region size */ 24 u32 api_num; /* number of API entries */ 25 u32 fsp_tempram_init; /* tempram_init offset */ 26 u32 fsp_init; /* fsp_init offset */ 27 u32 fsp_notify; /* fsp_notify offset */ 28 u32 fsp_mem_init; /* fsp_mem_init offset */ 29 u32 fsp_tempram_exit; /* fsp_tempram_exit offset */ 30 u32 fsp_silicon_init; /* fsp_silicon_init offset */ 31 }; 32 33 #define FSP_HEADER_REVISION_1 1 34 #define FSP_HEADER_REVISION_2 2 35 36 enum fsp_type { 37 FSP_ATTR_COMP_TYPE_FSP_T = 1, 38 FSP_ATTR_COMP_TYPE_FSP_M = 2, 39 FSP_ATTR_COMP_TYPE_FSP_S = 3, 40 }; 41 42 enum { 43 FSP_ATTR_GRAPHICS_SUPPORT = 1 << 0, 44 FSP_ATTR_COMP_TYPE_SHIFT = 28, 45 FSP_ATTR_COMP_TYPE_MASK = 0xfU << FSP_ATTR_COMP_TYPE_SHIFT, 46 47 }; 48 49 #define EFI_FSPH_SIGNATURE SIGNATURE_32('F', 'S', 'P', 'H') 50 51 #endif 52