blob: e0c47b5d7a6efddc891469d9470499e75d7bab9b [file] [log] [blame]
Philipp Tomsich1fc53302018-12-14 21:14:29 +01001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * (C) 2018 Theobroma Systems Design und Consulting GmbH
4 */
5
6#include <common.h>
7#include <dm.h>
8#include <bootcount.h>
Simon Glass0f2af882020-05-10 11:40:05 -06009#include <log.h>
Philipp Tomsich1fc53302018-12-14 21:14:29 +010010#include <asm/test.h>
11#include <dm/test.h>
Simon Glass75c4d412020-07-19 10:15:37 -060012#include <test/test.h>
Philipp Tomsich1fc53302018-12-14 21:14:29 +010013#include <test/ut.h>
14
15static int dm_test_bootcount(struct unit_test_state *uts)
16{
17 struct udevice *dev;
18 u32 val;
19
20 ut_assertok(uclass_get_device(UCLASS_BOOTCOUNT, 0, &dev));
21 ut_assertok(dm_bootcount_set(dev, 0));
22 ut_assertok(dm_bootcount_get(dev, &val));
23 ut_assert(val == 0);
24 ut_assertok(dm_bootcount_set(dev, 0xab));
25 ut_assertok(dm_bootcount_get(dev, &val));
26 ut_assert(val == 0xab);
27
Michal Simek4f18f922020-05-28 11:48:55 +020028 ut_assertok(uclass_get_device(UCLASS_BOOTCOUNT, 1, &dev));
29 ut_assertok(dm_bootcount_set(dev, 0));
30 ut_assertok(dm_bootcount_get(dev, &val));
31 ut_assert(val == 0);
32 ut_assertok(dm_bootcount_set(dev, 0xab));
33 ut_assertok(dm_bootcount_get(dev, &val));
34 ut_assert(val == 0xab);
35
Philipp Tomsich1fc53302018-12-14 21:14:29 +010036 return 0;
37}
38
Simon Glass974dccd2020-07-28 19:41:12 -060039DM_TEST(dm_test_bootcount, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
Philipp Tomsich1fc53302018-12-14 21:14:29 +010040