xref: /openbmc/u-boot/test/dm/mailbox.c (revision e8f80a5a)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0
28961b524SStephen Warren /*
38961b524SStephen Warren  * Copyright (c) 2016, NVIDIA CORPORATION.
48961b524SStephen Warren  */
58961b524SStephen Warren 
68961b524SStephen Warren #include <common.h>
78961b524SStephen Warren #include <dm.h>
88961b524SStephen Warren #include <dm/test.h>
98961b524SStephen Warren #include <asm/mbox.h>
108961b524SStephen Warren #include <test/ut.h>
118961b524SStephen Warren 
dm_test_mailbox(struct unit_test_state * uts)128961b524SStephen Warren static int dm_test_mailbox(struct unit_test_state *uts)
138961b524SStephen Warren {
148961b524SStephen Warren 	struct udevice *dev;
158961b524SStephen Warren 	uint32_t msg;
168961b524SStephen Warren 
178961b524SStephen Warren 	ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "mbox-test", &dev));
188961b524SStephen Warren 	ut_assertok(sandbox_mbox_test_get(dev));
198961b524SStephen Warren 
208961b524SStephen Warren 	ut_asserteq(-ETIMEDOUT, sandbox_mbox_test_recv(dev, &msg));
218961b524SStephen Warren 	ut_assertok(sandbox_mbox_test_send(dev, 0xaaff9955UL));
228961b524SStephen Warren 	ut_assertok(sandbox_mbox_test_recv(dev, &msg));
238961b524SStephen Warren 	ut_asserteq(msg, 0xaaff9955UL ^ SANDBOX_MBOX_PING_XOR);
248961b524SStephen Warren 	ut_asserteq(-ETIMEDOUT, sandbox_mbox_test_recv(dev, &msg));
258961b524SStephen Warren 
268961b524SStephen Warren 	ut_assertok(sandbox_mbox_test_free(dev));
278961b524SStephen Warren 
288961b524SStephen Warren 	return 0;
298961b524SStephen Warren }
308961b524SStephen Warren DM_TEST(dm_test_mailbox, DM_TESTF_SCAN_FDT);
31