HV: Parse SeedList HOB

Retrieve dseed from SeedList HOB(Hand-Off-Block).
SBL passes SeedList HOB to ACRN by MBI modules.

Signed-off-by: Qi Yadong <yadong.qi@intel.com>
Reviewed-by: Zhu Bing <bing.zhu@intel.com>
Reviewed-by: Wang Kai <kai.z.wang@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Qi Yadong
2018-06-05 10:57:34 +08:00
committed by lijinxia
parent d1e281f6eb
commit 03f5cbdd7a
6 changed files with 139 additions and 1 deletions

View File

@@ -0,0 +1,46 @@
/*
* Copyright (C) 2018 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef HOB_PARSE_H_
#define HOB_PARSE_H_
#define SEED_ENTRY_TYPE_SVNSEED 0x1
#define SEED_ENTRY_TYPE_RPMBSEED 0x2
#define SEED_ENTRY_USAGE_USEED 0x1
#define SEED_ENTRY_USAGE_DSEED 0x2
struct seed_list_hob {
uint8_t revision;
uint8_t reserved0[3];
uint32_t buffer_size;
uint8_t total_seed_count;
uint8_t reserved1[3];
};
struct seed_entry {
/* SVN based seed or RPMB seed or attestation key_box */
uint8_t type;
/* For SVN seed: useed or dseed
* For RPMB seed: serial number based or not
*/
uint8_t usage;
/* index for the same type and usage seed */
uint8_t index;
uint8_t reserved;
/* reserved for future use */
uint16_t flags;
/* Total size of this seed entry */
uint16_t seed_entry_size;
/* SVN seed: struct seed_info
* RPMB seed: uint8_t rpmb_key[key_len]
*/
uint8_t seed[0];
};
void parse_seed_list(struct seed_list_hob *seed_hob);
#endif /* HOB_PARSE_H_ */

View File

@@ -119,5 +119,7 @@ void switch_world(struct vcpu *vcpu, int next_world);
bool initialize_trusty(struct vcpu *vcpu, uint64_t param);
void destroy_secure_world(struct vm *vm);
void trusty_set_dseed(void *dseed, uint8_t seed_num);
#endif /* TRUSTY_H_ */