"Das U-Boot" Source Tree
at master 77 lines 2.1 kB view raw
1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * (C) 2018 Theobroma Systems Design und Consulting GmbH 4 */ 5 6#include <dm.h> 7#include <bootcount.h> 8#include <log.h> 9#include <asm/test.h> 10#include <dm/test.h> 11#include <test/test.h> 12#include <test/ut.h> 13 14static int dm_test_bootcount_rtc(struct unit_test_state *uts) 15{ 16 struct udevice *dev; 17 u32 val; 18 19 ut_assertok(uclass_get_device_by_name(UCLASS_BOOTCOUNT, "bootcount@0", 20 &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 28 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 36 return 0; 37} 38DM_TEST(dm_test_bootcount_rtc, UTF_SCAN_PDATA | UTF_SCAN_FDT); 39 40static int dm_test_bootcount_syscon_four_bytes(struct unit_test_state *uts) 41{ 42 struct udevice *dev; 43 u32 val; 44 45 sandbox_set_enable_memio(true); 46 ut_assertok(uclass_get_device_by_name(UCLASS_BOOTCOUNT, "bootcount_4@0", 47 &dev)); 48 ut_assertok(dm_bootcount_set(dev, 0xab)); 49 ut_assertok(dm_bootcount_get(dev, &val)); 50 ut_assert(val == 0xab); 51 ut_assertok(dm_bootcount_set(dev, 0)); 52 ut_assertok(dm_bootcount_get(dev, &val)); 53 ut_assert(val == 0); 54 55 return 0; 56} 57DM_TEST(dm_test_bootcount_syscon_four_bytes, 58 UTF_SCAN_PDATA | UTF_SCAN_FDT); 59 60static int dm_test_bootcount_syscon_two_bytes(struct unit_test_state *uts) 61{ 62 struct udevice *dev; 63 u32 val; 64 65 sandbox_set_enable_memio(true); 66 ut_assertok(uclass_get_device_by_name(UCLASS_BOOTCOUNT, "bootcount_2@0", 67 &dev)); 68 ut_assertok(dm_bootcount_set(dev, 0xab)); 69 ut_assertok(dm_bootcount_get(dev, &val)); 70 ut_assert(val == 0xab); 71 ut_assertok(dm_bootcount_set(dev, 0)); 72 ut_assertok(dm_bootcount_get(dev, &val)); 73 ut_assert(val == 0); 74 75 return 0; 76} 77DM_TEST(dm_test_bootcount_syscon_two_bytes, UTF_SCAN_PDATA | UTF_SCAN_FDT);