mmc: rpmb: Add interface functions
Add interface functions for external programs, other functions can use it to read and write rpmb partitions. Change-Id: Ie94a6586077e1e9f4fc2924d283029f0a4a3e545 Signed-off-by: Hisping Lin <hisping.lin@rock-chips.com>
This commit is contained in:
parent
87b8e6decf
commit
ea5fd1c643
|
|
@ -350,3 +350,58 @@ int mmc_rpmb_write(struct mmc *mmc, void *addr, unsigned short blk,
|
|||
return -1;
|
||||
return cnt;
|
||||
}
|
||||
|
||||
int read_counter(struct mmc *mmc, struct s_rpmb *requestpackets)
|
||||
{
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, false))
|
||||
return -1;
|
||||
|
||||
if (mmc_rpmb_response(mmc, requestpackets, RPMB_RESP_WCOUNTER, 1))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int program_key(struct mmc *mmc, struct s_rpmb *requestpackets)
|
||||
{
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, true))
|
||||
return -1;
|
||||
|
||||
memset(requestpackets, 0, sizeof(struct s_rpmb));
|
||||
|
||||
requestpackets->request = cpu_to_be16(RPMB_REQ_STATUS);
|
||||
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, false))
|
||||
return -1;
|
||||
|
||||
return mmc_rpmb_response(mmc, requestpackets, RPMB_RESP_KEY, 1);
|
||||
}
|
||||
|
||||
int authenticated_read(struct mmc *mmc,
|
||||
struct s_rpmb *requestpackets, uint16_t block_count)
|
||||
{
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, false))
|
||||
return -1;
|
||||
|
||||
if (mmc_rpmb_response
|
||||
(mmc, requestpackets, RPMB_RESP_READ_DATA, block_count))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int authenticated_write(struct mmc *mmc, struct s_rpmb *requestpackets)
|
||||
{
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, true))
|
||||
return -1;
|
||||
|
||||
memset(requestpackets, 0, sizeof(struct s_rpmb));
|
||||
|
||||
requestpackets->request = cpu_to_be16(RPMB_REQ_STATUS);
|
||||
|
||||
if (mmc_rpmb_request(mmc, requestpackets, 1, false))
|
||||
return -1;
|
||||
|
||||
return mmc_rpmb_response(mmc, requestpackets, RPMB_RESP_WRITE_DATA, 1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -336,6 +336,12 @@ int do_authenticatedread(struct s_rpmb *requestpackets, uint16_t block_count);
|
|||
int do_authenticatedwrite(struct s_rpmb *requestpackets);
|
||||
struct mmc *do_returnmmc(void);
|
||||
|
||||
int read_counter(struct mmc *mmc, struct s_rpmb *requestpackets);
|
||||
int program_key(struct mmc *mmc, struct s_rpmb *requestpackets);
|
||||
int authenticated_read
|
||||
(struct mmc *mmc, struct s_rpmb *requestpackets, uint16_t block_count);
|
||||
int authenticated_write(struct mmc *mmc, struct s_rpmb *requestpackets);
|
||||
|
||||
/* Driver model support */
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue