mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-22 10:34:55 +08:00
drm/nouveau/secboot: make specialized ls_ucode_img struct private
This structure does not need to be shared anymore. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
48eee549da
commit
f7152a232c
@ -165,6 +165,96 @@ struct hsflcn_acr_desc {
|
||||
* Low-secure blob creation
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct acr_r352_lsf_lsb_header - LS firmware header
|
||||
* @signature: signature to verify the firmware against
|
||||
* @ucode_off: offset of the ucode blob in the WPR region. The ucode
|
||||
* blob contains the bootloader, code and data of the
|
||||
* LS falcon
|
||||
* @ucode_size: size of the ucode blob, including bootloader
|
||||
* @data_size: size of the ucode blob data
|
||||
* @bl_code_size: size of the bootloader code
|
||||
* @bl_imem_off: offset in imem of the bootloader
|
||||
* @bl_data_off: offset of the bootloader data in WPR region
|
||||
* @bl_data_size: size of the bootloader data
|
||||
* @app_code_off: offset of the app code relative to ucode_off
|
||||
* @app_code_size: size of the app code
|
||||
* @app_data_off: offset of the app data relative to ucode_off
|
||||
* @app_data_size: size of the app data
|
||||
* @flags: flags for the secure bootloader
|
||||
*
|
||||
* This structure is written into the WPR region for each managed falcon. Each
|
||||
* instance is referenced by the lsb_offset member of the corresponding
|
||||
* lsf_wpr_header.
|
||||
*/
|
||||
struct acr_r352_lsf_lsb_header {
|
||||
/**
|
||||
* LS falcon signatures
|
||||
* @prd_keys: signature to use in production mode
|
||||
* @dgb_keys: signature to use in debug mode
|
||||
* @b_prd_present: whether the production key is present
|
||||
* @b_dgb_present: whether the debug key is present
|
||||
* @falcon_id: ID of the falcon the ucode applies to
|
||||
*/
|
||||
struct {
|
||||
u8 prd_keys[2][16];
|
||||
u8 dbg_keys[2][16];
|
||||
u32 b_prd_present;
|
||||
u32 b_dbg_present;
|
||||
u32 falcon_id;
|
||||
} signature;
|
||||
u32 ucode_off;
|
||||
u32 ucode_size;
|
||||
u32 data_size;
|
||||
u32 bl_code_size;
|
||||
u32 bl_imem_off;
|
||||
u32 bl_data_off;
|
||||
u32 bl_data_size;
|
||||
u32 app_code_off;
|
||||
u32 app_code_size;
|
||||
u32 app_data_off;
|
||||
u32 app_data_size;
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct acr_r352_lsf_wpr_header - LS blob WPR Header
|
||||
* @falcon_id: LS falcon ID
|
||||
* @lsb_offset: offset of the lsb_lsf_header in the WPR region
|
||||
* @bootstrap_owner: secure falcon reponsible for bootstrapping the LS falcon
|
||||
* @lazy_bootstrap: skip bootstrapping by ACR
|
||||
* @status: bootstrapping status
|
||||
*
|
||||
* An array of these is written at the beginning of the WPR region, one for
|
||||
* each managed falcon. The array is terminated by an instance which falcon_id
|
||||
* is LSF_FALCON_ID_INVALID.
|
||||
*/
|
||||
struct acr_r352_lsf_wpr_header {
|
||||
u32 falcon_id;
|
||||
u32 lsb_offset;
|
||||
u32 bootstrap_owner;
|
||||
u32 lazy_bootstrap;
|
||||
u32 status;
|
||||
#define LSF_IMAGE_STATUS_NONE 0
|
||||
#define LSF_IMAGE_STATUS_COPY 1
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_CODE_FAILED 2
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_DATA_FAILED 3
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_DONE 4
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_SKIPPED 5
|
||||
#define LSF_IMAGE_STATUS_BOOTSTRAP_READY 6
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ls_ucode_img_r352 - ucode image augmented with r352 headers
|
||||
*/
|
||||
struct ls_ucode_img_r352 {
|
||||
struct ls_ucode_img base;
|
||||
|
||||
struct acr_r352_lsf_wpr_header wpr_header;
|
||||
struct acr_r352_lsf_lsb_header lsb_header;
|
||||
};
|
||||
#define ls_ucode_img_r352(i) container_of(i, struct ls_ucode_img_r352, base)
|
||||
|
||||
/**
|
||||
* ls_ucode_img_load() - create a lsf_ucode_img and load it
|
||||
*/
|
||||
|
@ -29,105 +29,9 @@ struct ls_ucode_img;
|
||||
|
||||
#define ACR_R352_MAX_APPS 8
|
||||
|
||||
/*
|
||||
*
|
||||
* LS blob structures
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct acr_r352_lsf_lsb_header - LS firmware header
|
||||
* @signature: signature to verify the firmware against
|
||||
* @ucode_off: offset of the ucode blob in the WPR region. The ucode
|
||||
* blob contains the bootloader, code and data of the
|
||||
* LS falcon
|
||||
* @ucode_size: size of the ucode blob, including bootloader
|
||||
* @data_size: size of the ucode blob data
|
||||
* @bl_code_size: size of the bootloader code
|
||||
* @bl_imem_off: offset in imem of the bootloader
|
||||
* @bl_data_off: offset of the bootloader data in WPR region
|
||||
* @bl_data_size: size of the bootloader data
|
||||
* @app_code_off: offset of the app code relative to ucode_off
|
||||
* @app_code_size: size of the app code
|
||||
* @app_data_off: offset of the app data relative to ucode_off
|
||||
* @app_data_size: size of the app data
|
||||
* @flags: flags for the secure bootloader
|
||||
*
|
||||
* This structure is written into the WPR region for each managed falcon. Each
|
||||
* instance is referenced by the lsb_offset member of the corresponding
|
||||
* lsf_wpr_header.
|
||||
*/
|
||||
struct acr_r352_lsf_lsb_header {
|
||||
/**
|
||||
* LS falcon signatures
|
||||
* @prd_keys: signature to use in production mode
|
||||
* @dgb_keys: signature to use in debug mode
|
||||
* @b_prd_present: whether the production key is present
|
||||
* @b_dgb_present: whether the debug key is present
|
||||
* @falcon_id: ID of the falcon the ucode applies to
|
||||
*/
|
||||
struct {
|
||||
u8 prd_keys[2][16];
|
||||
u8 dbg_keys[2][16];
|
||||
u32 b_prd_present;
|
||||
u32 b_dbg_present;
|
||||
u32 falcon_id;
|
||||
} signature;
|
||||
u32 ucode_off;
|
||||
u32 ucode_size;
|
||||
u32 data_size;
|
||||
u32 bl_code_size;
|
||||
u32 bl_imem_off;
|
||||
u32 bl_data_off;
|
||||
u32 bl_data_size;
|
||||
u32 app_code_off;
|
||||
u32 app_code_size;
|
||||
u32 app_data_off;
|
||||
u32 app_data_size;
|
||||
u32 flags;
|
||||
#define LSF_FLAG_LOAD_CODE_AT_0 1
|
||||
#define LSF_FLAG_DMACTL_REQ_CTX 4
|
||||
#define LSF_FLAG_FORCE_PRIV_LOAD 8
|
||||
};
|
||||
|
||||
/**
|
||||
* struct acr_r352_lsf_wpr_header - LS blob WPR Header
|
||||
* @falcon_id: LS falcon ID
|
||||
* @lsb_offset: offset of the lsb_lsf_header in the WPR region
|
||||
* @bootstrap_owner: secure falcon reponsible for bootstrapping the LS falcon
|
||||
* @lazy_bootstrap: skip bootstrapping by ACR
|
||||
* @status: bootstrapping status
|
||||
*
|
||||
* An array of these is written at the beginning of the WPR region, one for
|
||||
* each managed falcon. The array is terminated by an instance which falcon_id
|
||||
* is LSF_FALCON_ID_INVALID.
|
||||
*/
|
||||
struct acr_r352_lsf_wpr_header {
|
||||
u32 falcon_id;
|
||||
u32 lsb_offset;
|
||||
u32 bootstrap_owner;
|
||||
u32 lazy_bootstrap;
|
||||
u32 status;
|
||||
#define LSF_IMAGE_STATUS_NONE 0
|
||||
#define LSF_IMAGE_STATUS_COPY 1
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_CODE_FAILED 2
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_DATA_FAILED 3
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_DONE 4
|
||||
#define LSF_IMAGE_STATUS_VALIDATION_SKIPPED 5
|
||||
#define LSF_IMAGE_STATUS_BOOTSTRAP_READY 6
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ls_ucode_img_r352 - ucode image augmented with r352 headers
|
||||
*/
|
||||
struct ls_ucode_img_r352 {
|
||||
struct ls_ucode_img base;
|
||||
|
||||
struct acr_r352_lsf_wpr_header wpr_header;
|
||||
struct acr_r352_lsf_lsb_header lsb_header;
|
||||
};
|
||||
#define ls_ucode_img_r352(i) container_of(i, struct ls_ucode_img_r352, base)
|
||||
|
||||
|
||||
/*
|
||||
* HS blob structures
|
||||
|
Loading…
Reference in New Issue
Block a user