1 /* 2 * (C) Copyright 2015 Google, Inc 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <command.h> 9 #include <div64.h> 10 #include "dhry.h" 11 12 static int do_dhry(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) 13 { 14 ulong start, duration, vax_mips; 15 u64 dhry_per_sec; 16 int iterations = 1000000; 17 18 if (argc > 1) 19 iterations = simple_strtoul(argv[1], NULL, 10); 20 21 start = get_timer(0); 22 dhry(iterations); 23 duration = get_timer(start); 24 dhry_per_sec = lldiv(iterations * 1000ULL, duration); 25 vax_mips = lldiv(dhry_per_sec, 1757); 26 printf("%d iterations in %lu ms: %lu/s, %lu DMIPS\n", iterations, 27 duration, (ulong)dhry_per_sec, vax_mips); 28 29 return 0; 30 } 31 32 U_BOOT_CMD( 33 dhry, 2, 1, do_dhry, 34 "[iterations] - run dhrystone benchmark", 35 "\n - run the Dhrystone 2.1 benchmark, a rough measure of CPU speed\n" 36 ); 37