1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (c) 2023 SberDevices, Inc.
10 #include <sandbox-sm.h>
11 #include <asm/ptrace.h>
12 #include <dm/device-internal.h>
15 #include <linux/sizes.h>
17 static int dm_test_sm(struct unit_test_state *uts)
21 char buffer[128] = { 0 };
22 char test_string[] = "secure-monitor";
25 ut_assertok(uclass_get_device_by_name(UCLASS_SM,
26 "secure-monitor", &dev));
28 ret = sm_call(dev, SANDBOX_SMC_CMD_COUNT, NULL, ®s);
29 ut_asserteq(ret, -EINVAL);
31 ret = sm_call(dev, SANDBOX_SMC_CMD_COMMON, &val, ®s);
35 ret = sm_call_write(dev, buffer, sizeof(buffer),
36 SANDBOX_SMC_CMD_COUNT, ®s);
37 ut_asserteq(ret, -EINVAL);
39 ret = sm_call_write(dev, buffer, SZ_4K + 1,
40 SANDBOX_SMC_CMD_WRITE_MEM, ®s);
41 ut_asserteq(ret, -EINVAL);
43 ret = sm_call_write(dev, buffer, sizeof(buffer),
44 SANDBOX_SMC_CMD_COUNT, ®s);
45 ut_asserteq(ret, -EINVAL);
47 ret = sm_call_write(dev, buffer, SZ_4K + 1,
48 SANDBOX_SMC_CMD_READ_MEM, ®s);
49 ut_asserteq(ret, -EINVAL);
51 ret = sm_call_write(dev, test_string, sizeof(test_string),
52 SANDBOX_SMC_CMD_WRITE_MEM, ®s);
53 ut_asserteq(ret, sizeof(test_string));
55 ret = sm_call_read(dev, buffer, sizeof(buffer),
56 SANDBOX_SMC_CMD_READ_MEM, ®s);
57 ut_asserteq(ret, sizeof(buffer));
59 ut_asserteq_str(buffer, test_string);
63 DM_TEST(dm_test_sm, UTF_SCAN_FDT);