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