zynqmp: pm: Implemented new pm API to load secure images
This patch adds pm_secure_rsaaes() API to provide access to the xilsecure library for loading secure images Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
This commit is contained in:
parent
29bd0e6688
commit
e71fe2a3f2
|
@ -538,6 +538,33 @@ enum pm_ret_status pm_get_chipid(uint32_t *value)
|
|||
return pm_ipi_send_sync(primary_proc, payload, value, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* pm_secure_rsaaes() - Load the secure images.
|
||||
*
|
||||
* This function provides access to the xilsecure library to load
|
||||
* the authenticated, encrypted, and authenicated/encrypted images.
|
||||
*
|
||||
* address_low: lower 32-bit Linear memory space address
|
||||
*
|
||||
* address_high: higher 32-bit Linear memory space address
|
||||
*
|
||||
* size: Number of 32bit words
|
||||
*
|
||||
* @return Returns status, either success or error+reason
|
||||
*/
|
||||
enum pm_ret_status pm_secure_rsaaes(uint32_t address_low,
|
||||
uint32_t address_high,
|
||||
uint32_t size,
|
||||
uint32_t flags)
|
||||
{
|
||||
uint32_t payload[PAYLOAD_ARG_CNT];
|
||||
|
||||
/* Send request to the PMU */
|
||||
PM_PACK_PAYLOAD5(payload, PM_SECURE_RSA_AES, address_high, address_low,
|
||||
size, flags);
|
||||
return pm_ipi_send_sync(primary_proc, payload, NULL, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* pm_get_callbackdata() - Read from IPI response buffer
|
||||
* @data - array of PAYLOAD_ARG_CNT elements
|
||||
|
|
|
@ -108,6 +108,10 @@ enum pm_ret_status pm_fpga_load(uint32_t address_low,
|
|||
enum pm_ret_status pm_fpga_get_status(unsigned int *value);
|
||||
|
||||
enum pm_ret_status pm_get_chipid(uint32_t *value);
|
||||
enum pm_ret_status pm_secure_rsaaes(uint32_t address_high,
|
||||
uint32_t address_low,
|
||||
uint32_t size,
|
||||
uint32_t flags);
|
||||
void pm_get_callbackdata(uint32_t *data, size_t count);
|
||||
enum pm_ret_status pm_pinctrl_request(unsigned int pin);
|
||||
enum pm_ret_status pm_pinctrl_release(unsigned int pin);
|
||||
|
|
|
@ -252,6 +252,11 @@ uint64_t pm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3,
|
|||
result[1]);
|
||||
}
|
||||
|
||||
case PM_SECURE_RSA_AES:
|
||||
ret = pm_secure_rsaaes(pm_arg[0], pm_arg[1], pm_arg[2],
|
||||
pm_arg[3]);
|
||||
SMC_RET1(handle, (uint64_t)ret);
|
||||
|
||||
case PM_GET_CALLBACK_DATA:
|
||||
{
|
||||
uint32_t result[4];
|
||||
|
|
Loading…
Reference in New Issue