tests/amdgpu: add test to submit a sdma command with secure context
[platform/upstream/libdrm.git] / tests / amdgpu / security_tests.c
index afe79e5..eb239f4 100644 (file)
@@ -32,6 +32,9 @@ static uint32_t major_version;
 static uint32_t minor_version;
 
 static void amdgpu_security_alloc_buf_test(void);
+static void amdgpu_security_gfx_submission_test(void);
+static void amdgpu_security_sdma_submission_test(void);
+
 
 CU_BOOL suite_security_tests_enable(void)
 {
@@ -75,6 +78,8 @@ int suite_security_tests_clean(void)
 
 CU_TestInfo security_tests[] = {
        { "allocate secure buffer test", amdgpu_security_alloc_buf_test },
+       { "graphics secure command submission", amdgpu_security_gfx_submission_test },
+       { "sdma secure command submission", amdgpu_security_sdma_submission_test },
        CU_TEST_INFO_NULL,
 };
 
@@ -102,4 +107,28 @@ static void amdgpu_security_alloc_buf_test(void)
 
        r = gpu_mem_free(bo, va_handle, bo_mc, 4096);
        CU_ASSERT_EQUAL(r, 0);
+
+       /* Test secure buffer allocation in invisible VRAM */
+       bo = gpu_mem_alloc(device_handle, 4096, 4096,
+                          AMDGPU_GEM_DOMAIN_GTT,
+                          AMDGPU_GEM_CREATE_ENCRYPTED |
+                          AMDGPU_GEM_CREATE_NO_CPU_ACCESS,
+                          &bo_mc, &va_handle);
+
+       r = gpu_mem_free(bo, va_handle, bo_mc, 4096);
+       CU_ASSERT_EQUAL(r, 0);
+}
+
+static void amdgpu_security_gfx_submission_test(void)
+{
+       amdgpu_command_submission_write_linear_helper_with_secure(device_handle,
+                                                                 AMDGPU_HW_IP_GFX,
+                                                                 true);
+}
+
+static void amdgpu_security_sdma_submission_test(void)
+{
+       amdgpu_command_submission_write_linear_helper_with_secure(device_handle,
+                                                                 AMDGPU_HW_IP_DMA,
+                                                                 true);
 }