sev/i386: qmp: add query-sev-capabilities command
The command can be used by libvirt to query the SEV capabilities. Cc: "Daniel P. Berrangé" <berrange@redhat.com> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									1b6a034f29
								
							
						
					
					
						commit
						31dd67f684
					
				| @ -985,6 +985,7 @@ static void qmp_unregister_commands_hack(void) | ||||
|     qmp_unregister_command(&qmp_commands, "rtc-reset-reinjection"); | ||||
|     qmp_unregister_command(&qmp_commands, "query-sev"); | ||||
|     qmp_unregister_command(&qmp_commands, "query-sev-launch-measure"); | ||||
|     qmp_unregister_command(&qmp_commands, "query-sev-capabilities"); | ||||
| #endif | ||||
| #ifndef TARGET_S390X | ||||
|     qmp_unregister_command(&qmp_commands, "dump-skeys"); | ||||
| @ -4117,6 +4118,12 @@ SevLaunchMeasureInfo *qmp_query_sev_launch_measure(Error **errp) | ||||
|     error_setg(errp, QERR_FEATURE_DISABLED, "query-sev-launch-measure"); | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| SevCapability *qmp_query_sev_capabilities(Error **errp) | ||||
| { | ||||
|     error_setg(errp, QERR_FEATURE_DISABLED, "query-sev-capabilities"); | ||||
|     return NULL; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifndef TARGET_S390X | ||||
|  | ||||
| @ -3322,3 +3322,45 @@ | ||||
| # | ||||
| ## | ||||
| { 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo' } | ||||
| 
 | ||||
| ## | ||||
| # @SevCapability: | ||||
| # | ||||
| # The struct describes capability for a Secure Encrypted Virtualization | ||||
| # feature. | ||||
| # | ||||
| # @pdh:  Platform Diffie-Hellman key (base64 encoded) | ||||
| # | ||||
| # @cert-chain:  PDH certificate chain (base64 encoded) | ||||
| # | ||||
| # @cbitpos: C-bit location in page table entry | ||||
| # | ||||
| # @reduced-phys-bits: Number of physical Address bit reduction when SEV is | ||||
| #                     enabled | ||||
| # | ||||
| # Since: 2.12 | ||||
| ## | ||||
| { 'struct': 'SevCapability', | ||||
|   'data': { 'pdh': 'str', | ||||
|             'cert-chain': 'str', | ||||
|             'cbitpos': 'int', | ||||
|             'reduced-phys-bits': 'int'} } | ||||
| 
 | ||||
| ## | ||||
| # @query-sev-capabilities: | ||||
| # | ||||
| # This command is used to get the SEV capabilities, and is supported on AMD | ||||
| # X86 platforms only. | ||||
| # | ||||
| # Returns: SevCapability objects. | ||||
| # | ||||
| # Since: 2.12 | ||||
| # | ||||
| # Example: | ||||
| # | ||||
| # -> { "execute": "query-sev-capabilities" } | ||||
| # <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE", | ||||
| #                  "cbitpos": 47, "reduced-phys-bits": 5}} | ||||
| # | ||||
| ## | ||||
| { 'command': 'query-sev-capabilities', 'returns': 'SevCapability' } | ||||
|  | ||||
| @ -714,3 +714,9 @@ SevLaunchMeasureInfo *qmp_query_sev_launch_measure(Error **errp) | ||||
| 
 | ||||
|     return info; | ||||
| } | ||||
| 
 | ||||
| SevCapability *qmp_query_sev_capabilities(Error **errp) | ||||
| { | ||||
|     error_setg(errp, "SEV feature is not available"); | ||||
|     return NULL; | ||||
| } | ||||
|  | ||||
| @ -208,6 +208,7 @@ static bool query_is_blacklisted(const char *cmd) | ||||
|         "query-sev-launch-measure", | ||||
|         /* Success depends on Host or Hypervisor SEV support */ | ||||
|         "query-sev", | ||||
|         "query-sev-capabilities", | ||||
|         NULL | ||||
|     }; | ||||
|     int i; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Brijesh Singh
						Brijesh Singh